主要应用领域
RESTFul API
实时通信
高并发
I/O阻塞
社区
生于社区
社区推进
github
国内
生态圈
以NPM为中心
sublime 编辑器
异步的实现方式
回调函数
事件监听
订阅/发布
node.js的缺点
大量采用匿名函数,使得抛出的异常不易阅读
try/catch 限于同步代码 无法处理异步的 异步采用标志参数处理
单线程:可靠性 代码严谨
不适合CPU密集的操作 nodejs的C语言扩展
回调的代码影响阅读 尽量友好的
node.js的执行环境
Google V8
文件系统
网络功能(HTTP/TCP/UDP)
二进制数据
数据流
加密与解密
开发工具
webstrom
sublime
调试工具
WebStorm
nodemon
node-inspector
Chrome Developer Tools
windows下开发环境搭建
虚拟机、Linux
xShell、xFtp
node.js
MongoDB
redis
sublime Text
WebStrom
node.js Express 框架
API站点:
expressjs.com/en/4x/api.html
express 几个模块:
1、express()
2、Application
3、Request
4、Response
5、Router
express.js的配置与路由
middleware: //中间件
app.use
app.get
app.post
request:
req.params
req.query
req.body
resopnse:
res.send()
next()
code demo
var express = require('express'); //引入模块
var app = express();
var questions = {
{
id:1,
title:'t1',
asker:'you',
course:'node.js',
'last-reply':Date.now(),
reply:1,
state:'resolved'
}
{
id:2,
title:'t2',
asker:'you',
course:'node.js',
'last-reply':Date.now(),
reply:1,
state:'unresolved'
}
};
app.get('/questions',function(req,res){
res.status(200);
res.json(questions);
});
app.get('/questions/resolved',function(req,res){
res.status(200);
res.json(questions.filter(function(q){
return q && q.state === 'resolved';
}));
});
app.listen(8888);
#
node.js
创建node.js应用
var http = require("http"); //引入模块
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
node server.js //启动http server
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
● 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
● 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
● 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v"来测试是否成功安装