node.js 是一个让javascript运行在服务端的开发平台

node.js的环境部署

1.下载安装包

https://nodejs.org/en/

安装后 打开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)的更多相关文章

  1. 初步使用nodejs(一)

    初步使用nodejs(一) 首先打开 https://nodejs.org/,点击INSTALL下载安装 安装完成后 打开CMD 输入node –v 验证是否正常 至此,NODEJS安装完成. 下载W ...

  2. nodejs(14)express获取url中的参数

    问号传参获取参数 获取 http://127.0.0.1:3001/user?id=10&name=zs 中的查询参数: 直接使用 req.query 获取参数即可: 注意:URL 地址栏中通 ...

  3. (一)、NodeJS (转载)

    NodeJS基础                                                 ------ 转载自阿里巴巴 什么是NodeJS JS是脚本语言,脚本语言都需要一个解 ...

  4. Nodejs(待补充)

    Nodejs从入门到精通(待补充) 首先安装n模块: npm install -g n 第二步: 升级node.js到最新稳定版 n stable 是不是很简单?! n后面也可以跟随版本号比如: n ...

  5. 前端笔记之NodeJS(四)MongoDB数据库&Mongoose&自制接口&MVC架构思想|实战

    一.MongoDB数据库 1.1 NoSQL简介 随着互联网web2.0网站的兴起,传统的SQL数据库(关系数据库)在应付web2.0网站,特别是超大规模和高并发的SNS(social network ...

  6. 前端笔记之NodeJS(二)路由&REPL&模块系统&npm

    一.路由机制(静态资源文件处理) 1.1 Nodejs没有根目录 MIME类型:http://www.w3school.com.cn/media/media_mimeref.asp 在Apache中, ...

  7. 前端笔记之NodeJS(一)初识NodeJS&内置模块&特点

    一.NodeJS简介 NodeJS是开发服务器后台的东西,和PHP.JavaEE.python类似,和传统的浏览器的关注DOM的JS完全不同,将JavaScript触角伸到了服务器端.内核是Chrom ...

  8. 【nodejs】初识 NodeJS(二)

    上一节我们构建了一个基础的 http 服务器,我们可以接收 http 请求,但是我们得做点什么吧 – 不同的 http 请求,服务器应该有不同的响应. 路由模块 处理不同的 http 请求在我们的代码 ...

  9. 【nodejs】初识 NodeJS(一)

    构建一个基础的 http 服务器 需要引用 http 模块,http 模块是 node.js 的内置模块. var http = require('http'); http.createServer( ...

  10. nodejs(三) --- nodejs进程与子进程

    嗯,对于node的学习还远远不够,这里先做一个简单的api的记录,后续深入学习. 第一部分:nodejs中的全局对象之process进程对象 在node中的全局对象是global,相当于浏览器中的wi ...

随机推荐

  1. Visual Studio+TFS--强大的项目管理工具

    一.前言 微软的Visual Studio非常强大,可以无缝结合Git或自家的TFS(Team Foundation Server),进行项目管理非常方便,从需求分析.开发.测试.维护,几乎可以贯穿软 ...

  2. AI(一):概念与资讯

    AI: Artificial Intelligence(人工智能),它是研究.开发用于模拟和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学,上个世纪50年代一次学术讨论会议上,下图中几位著 ...

  3. AngularJS中的Provider们:Service和Factory等的区别

    引言 看了很多文章可能还是不太说得出AngularJS中的几个创建供应商(provider)的方法(factory(),service(),provider())到底有啥区别,啥时候该用啥,之前一直傻 ...

  4. windows 自带的 端口映射 端口转向功能

    安装IPV6 netsh interface ipv6 install查看 netsh interface portproxy show all添加 netsh interface portproxy ...

  5. [2015.08.13]万峰快递单打印软件 v2.2

    <万峰快递单打印软件>是一款简单易用,且支持所有快递单的打印软件.1.支持文字打印位置的坐标精确定位和微调的打印工具.2.操作灵活,只需录入收件人和发件人信息即可打印:3.快递单打印尺寸和 ...

  6. Angular中的Ajax

    //我们使用Ajax访问本地或者同域名下的数据或者文件module.controller('InTheatersController',['$scope','$http', function($sco ...

  7. python---difflib

    文件内容差异对比 difflib为python的标准库模块,无需安装.作用时对比文本之间的差异.并且支持输出可读性比较强的HTML文档,与LInux下的diff 命令相似.在版本控制方面非常有用. # ...

  8. 学习SQL的点点滴滴(五)-DELETE小计

    惨痛的教训: 某次在执行delete时,一时疏忽忘记写where条件了, 1.删除tb_mobile_cust_micromsg中的内容,前提是c_customer这个字段的值与#datamod表中c ...

  9. 【原】灵活运用sessionStorage或者localStorage

    有时,一个app中,后台并没有提供页面中对应的信息接口,需要前端在页面跳转时把某些信息带入下一个页面,一般想到用url后带参数的方法,但是有时需要带的参数过长,就不适合用这个方法了,所以用sessio ...

  10. 使用Spring配合Junit进行单元测试的总结

    最近公司的项目和自己的项目中都用到了spring集成junit进行单元测试,总结一下几种基本的用法: 1.直接对spring中注入的bean进行测试(以DAO为例): 在测试类上添加@RunWith注 ...