NodeJS学习总结

2018-03-16  本文已影响463人  遛遛食

介绍:

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

上一篇 下一篇

猜你喜欢

热点阅读