介绍:
NodeJS就是运行在后台的JS,可以使用JS语言来书写服务器。从中我们也可以看出JS的发展方向(慢慢的右弱语言,转变为强语言。使JS可以单独运行,并且减低JS的引用依赖)。
特点:
单线程
非阻塞I/O
事件驱动
数据库
作为服务器来讲,少不了要使用数据库,在NodeJS方面,数据库推荐使用MySQL,第一是因为通用,像Java等都可以使用,第二就是因为可以降低学习成本,不需要单独在学习其他的数据库了。
NPM介绍:
使用NodeJS需要用到很多的第三方包,包与包之间又存在依赖关系,所以为了管理这些第三方包,NodeJS提供出了NPM和package.json来管理。
因为NPM是国外的,所有有时候安装包会比较慢,所以可以更换为淘宝的CNPM来提高效率
切换淘宝镜像 后就可以使用cnpm命令了
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
下载安装NodeJS默认会安装NPM
NodeJS下载地址:https://nodejs.org/en/download/
学习点
1.学习网站:http://www.runoob.com/nodejs/nodejs-tutorial.html
2.NodeJS默认使用3000端口。
3.访问一次浏览器时,Node会收到两次请求,
第一次为正常的网页请求。http://localhost:8888
第二次为网页ICON请求。http://localhost:8888/favicon.ico
图标设置
<link rel="shortcut icon " type="images/x-icon" href="图标路径">
4.NodeJS分为好多模块,常用的模块为http模块网络模块、fs模块文件操作模块、mysql模块MySQL数据库操作模块。
5.全局对象:
__filename:表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。
__dirname:表示当前执行脚本所在的目录。
定时器和输出是和JS一样的
Node中全局变量不是window而是global。
6.response.end();后面的代码后不会执行。
7.JS是单线程的,NodeJS是在单线程的基础上加了多线程
所以,JS的异步代码会在同步代码结束之后执行回执。
每一个js文件就是一个函数。
8.CommonJS加载其他JS模块
输出:exports.输出名 = 内部函数/变量
module.exports= {输出名1:内部函数/变量, 输出名2:内部函数/变量}
使用:var moduleName = require('JS文件路径');
moduleName.输出名
9.response.setHeader('Content-Type','text/html;charst="utf-8";');优先级高
response.write('<meta charset="utf-8">');低于setHeader
10.文件流的读写
var fs = require('fs');
var rs = fs.createReadStream('./static/qichaofan.png');
var ws = fs.createWriteStream('./image.png');
/*
rs.once('open',function () {
console.log("rs通道打开");
})
rs.once('close',function () {
console.log("rs通道关闭");
ws.end();
})
ws.once('open',function () {
console.log("ws通道打开");
})
ws.once('close',function () {
console.log("ws通道关闭");
})
rs.on("data",function (data) {
console.log(data);
ws.write(data);
})
*/
rs.pipe(ws);//这个就等于上面的
三方插件
npm是对NodeJS进行三方管理的,安装NodeJS默认安装npm
安装: npm install 包名
卸载: npm uninstall 包名
Node Supervisor实现监测文件修改并自动重启应用
安装:npm install -g supervisor
使用:supervisor 文件名
body-parser处理post请求接收数据
使用:https://www.npmjs.com/package/body-parser
formidable处理图片上传
使用:https://www.npmjs.com/package/formidable
express相当于JS中的jQuery
使用:http://www.runoob.com/nodejs/nodejs-express-framework.html
网友评论