nodejs(1)
node.js 是一个让javascript运行在服务端的开发平台
node.js的环境部署
1.下载安装包
安装后 打开cmd的dos窗口
运行node
console.log('success')
编写一个demo.js并保存到nodejs的安装目录里
consloe.log('学习nodejs')
在dos里运行demo.js 可以看到输出的学习nodejs
node.js命令行工具
node -v 查看版本
node -e ‘console.log("hello word")’; 直接运行
node 直接进入编译模式
console.log('1111')
第一行是输入、第二行是返回值
建立HTTP服务器
var http = require('http');
http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.write('<h1>nodejs</h1>');
res.end('<p>视频PCAT</p>');
}).listen(2000);
保存为demo2.js并用cmd来运行
在浏览器中输入:localhost:2000
回调函数
1.异步式读取文件
var fs = require('fs');
fs.readFile('file.txt','utf-8',function(err,data){
if(err){
console.log(err);
}else{
console.log(data)
}
});
console.log('end.');
结果:
end.
Contents of the file.
在nodejs目录里编写一个file.js
var fs = require('fs');
fs.readFile('file.txt','utf-8',function(err,data){
if(err){
console.log(err);
}else{
console.log(data)
}
});
console.log('end.');
在nodejs目录里创建一个file.txt文件并写入hi,i'm a file.txt
打开cmd 执行file.js
同步式读取文件
var fs = require('fs');
var data=fs.readFileSync('file.txt','utf-8');
console.log(data);
console.log('end.');
显示如下
事件
1.普通事件的对象 (在nodejs目录里创建一个event.js)
//声明事件对象
var EventEmitter = require('events').EventEmitter;
var event = new EventEmitter();
//注册事件
event.on('some_event',function(){
console.log('这是一个自定义的事件');
})
//在1s时间之后触发事件
setInterval(function(){
event.emit('some_event');
},1000);
显示结果如下:
node.js的事件循环机制
node.js程序是由事件循环开始,到事件循环结束,所有的逻辑都是事件的回调函数。
如何使用自定义事件呢
事件的回调函数在执行的过程中,可能会发出IO请求或直接发射(emit)事件,这I型完毕后再返回事件循环。
node.js中的模块和包的应用:
1.在nodejs安装目录中创建一个模块 model.js
var name;
exports.setName=function(theName){
name = theName;
}
exports.sayHello=function(){
console.log('hello'+name);
}
2.在nodejs安装目录中创建一个模块 getModel.js
var myModel = require('./model');
myModel.setName('hehe');
myModel.sayHello();
node.js中require不能重复加载模块 只能包含一次
我们把一个对象封装到模块中引入模块 来实现多次调用
例:在node的安装目录中创建一个Sing.js
function hello(){
var name;
this.setName = function(theName){
name = theName;
}
this.sayHello = function(){
console.log('hello'+name);
}
}
module.exports=hello;
在node的安装目录中创建一个getSing.js
var hello = require('./Sing');
var he = new hello();
he.setName('hhehe');
he.sayHello();
var he1 = new hello();
he1.setName('aaaa');
he1.sayHello();
包的创建
创建一个package包
1. package.json必须在包的顶层目录下
package.json里面代码
{
"main" : "./lib/index.js"
}
2.创建bin文件夹 里面放二进制文件
3.创建doc文件夹 里面放文档
4.创建test文件夹 里面放测试的
5.创建lib文件夹 放一个index.js
index.js里面代码:
exports.sayHello = function(){
console.log('this is a easy package');
}
具体package文件夹下的所有文件
在node安装目录里创建一个getPackage.js
getPackage.js里面的代码:
var pac = require('./package');
pac.sayHello();
在cmd下测试如下:
node.js在调用某个包的时候。会检查包中的package.json文件中的main字段,将其作为包的 接口模块,如果package.json或main字段不存在,会尝试寻找index.js或index.code作为包的接口。
package.json的规范属性
如何用包管理器
1.获取一个包
npm [install/i] [package_name]
例如:安装express包
npm i express
卸载包
npm uninstall 报名 【-g】
查看当前报名
npm list
帮助链接:http://www.cnblogs.com/bluefrog/archive/2012/08/14/2639085.html
2.本地模式和全局模式
npm在默认情况下会从http://npmjs.org搜索或下载包 将包安装到npm_modules
a.默认是npm install包名 作为本地模式
b.全局模式
npm install -g 包名
用cmd创建包里里面的package.json
安装包
查看
测试
nodejs(1)的更多相关文章
- 初步使用nodejs(一)
初步使用nodejs(一) 首先打开 https://nodejs.org/,点击INSTALL下载安装 安装完成后 打开CMD 输入node –v 验证是否正常 至此,NODEJS安装完成. 下载W ...
- nodejs(14)express获取url中的参数
问号传参获取参数 获取 http://127.0.0.1:3001/user?id=10&name=zs 中的查询参数: 直接使用 req.query 获取参数即可: 注意:URL 地址栏中通 ...
- (一)、NodeJS (转载)
NodeJS基础 ------ 转载自阿里巴巴 什么是NodeJS JS是脚本语言,脚本语言都需要一个解 ...
- Nodejs(待补充)
Nodejs从入门到精通(待补充) 首先安装n模块: npm install -g n 第二步: 升级node.js到最新稳定版 n stable 是不是很简单?! n后面也可以跟随版本号比如: n ...
- 前端笔记之NodeJS(四)MongoDB数据库&Mongoose&自制接口&MVC架构思想|实战
一.MongoDB数据库 1.1 NoSQL简介 随着互联网web2.0网站的兴起,传统的SQL数据库(关系数据库)在应付web2.0网站,特别是超大规模和高并发的SNS(social network ...
- 前端笔记之NodeJS(二)路由&REPL&模块系统&npm
一.路由机制(静态资源文件处理) 1.1 Nodejs没有根目录 MIME类型:http://www.w3school.com.cn/media/media_mimeref.asp 在Apache中, ...
- 前端笔记之NodeJS(一)初识NodeJS&内置模块&特点
一.NodeJS简介 NodeJS是开发服务器后台的东西,和PHP.JavaEE.python类似,和传统的浏览器的关注DOM的JS完全不同,将JavaScript触角伸到了服务器端.内核是Chrom ...
- 【nodejs】初识 NodeJS(二)
上一节我们构建了一个基础的 http 服务器,我们可以接收 http 请求,但是我们得做点什么吧 – 不同的 http 请求,服务器应该有不同的响应. 路由模块 处理不同的 http 请求在我们的代码 ...
- 【nodejs】初识 NodeJS(一)
构建一个基础的 http 服务器 需要引用 http 模块,http 模块是 node.js 的内置模块. var http = require('http'); http.createServer( ...
- nodejs(三) --- nodejs进程与子进程
嗯,对于node的学习还远远不够,这里先做一个简单的api的记录,后续深入学习. 第一部分:nodejs中的全局对象之process进程对象 在node中的全局对象是global,相当于浏览器中的wi ...
随机推荐
- IOS开发之网络编程开源类 Reachability应用
先看Reachability.h发现 #import <Foundation/Foundation.h> #import <SystemConfiguration/SystemCon ...
- Mybatis原理分析之二:框架整体设计
1.引言 本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络.后面文章我们再详细讲解各个组件. 2.整体设计 2.1 总体流程 (1)加载配置并初始化 触发条件:加载配置文件 ...
- 在ESXi 5.x 和 ESXi 6.0.x 中如何安装第三方供应商开发的驱动程序
在 VMware ESXi 5.x 和 ESXi 6.0.x 中如何下载并安装异步驱动程序 (2076262) Symptoms 免责声明:本文为 How to download and inst ...
- mysql-bin引起mysql不能启动
日志提示无法找到mysql-bin.000005这个文件 原因是我把其删除了,而在mysql-bin.index文件中却还有mysql-bin.000005的记录,因此启动失败了 解决: cd /va ...
- 使用PowerDesigner把oom设计图导出jpg格式的图片
1: 按住Shift键点击鼠标选择要导出的对象,必须先选择. 2: 选择Edit—>Export Image 到出你需要的格式,如下图
- CSS详解
Web前端开发css基础样式总结 颜色和单位的使用 颜色 用颜色的名字表示颜色,比如:red 用16进制表示演示 比如:#FF0000 用rgb数值表示颜色,rgb(红,绿,蓝),每个值都在0-255 ...
- struts2执行流程
当Web容器收到 请求(HttpServletRequest) 1.它将请求传递给一个标准的的过滤链包括 (ActionContextCleanUp)过滤器 2.然后经过Other filters(S ...
- 可重入锁 公平锁 读写锁、CLH队列、CLH队列锁、自旋锁、排队自旋锁、MCS锁、CLH锁
1.可重入锁 如果锁具备可重入性,则称作为可重入锁. ========================================== (转)可重入和不可重入 2011-10-04 21:38 这 ...
- WebStorm注册码
WebStorm注册码User Name:EMBRACE License Key:===== LICENSE BEGIN =====24718-1204201000001h6wzKLpfo3gmjJ8 ...
- 【整理】C#文件操作大全(SamWang)<转>
文件与文件夹操作主要用到以下几个类: 1.File类: 提供用于创建.复制.删除.移动和打开文件的静态方法,并协助创建 FileStream 对象. msdn:http://msdn.microsof ...