一、js和nodejs区别
一个是基于浏览器端的 javascript (前端 JS)
一个是基于服务端的 javascript (后端 Node.js)
语法一样组成不一样
JavaScript:
ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象)
DOM(一些操作页面元素的方法)
BOM(一些操作浏览器的方法)
Node.js:ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象)
OS(操作系统)
file(文件系统)
net(网络系统)
database(数据库)
二、nodemon热更新
sudo npm install nodemon -g
sudo时必须有密码
三、express框架
1.可以将处理接口数据的逻辑提出来,让组件更纯粹;
2.方便处理异步逻辑;
3.不同的要求使用不同的中间件处理,方便解耦;
4.设置请求;
5.路由分级处理;
6.前后端分离职责更清晰;
7.前端开发自己处理请求响应数据,不依赖于后台;
nodejs笔记
node中间件
在NodeJS中,中间件主要是指封装所有Http请求细节处理的方法。一次Http请求通常包含很多工作,如记录日志、ip过滤、查询字符串、请求体解析、Cookie处理、权限验证、参数验证、异常处理等,但对于Web应用而言,并不希望接触到这么多细节性的处理,因此引入中间件来简化和隔离这些基础设施与业务逻辑之间的细节,让开发者能够关注在业务的开发上,以达到提升开发效率的目的。
// 管道流 从一个流中获取数据放到另外一个流中
var fs = require(‘fs’)
var readStream = fs.createReadStream(‘gome.txt’)
var writeStream = fs.createWriteStream(‘gome_bak.txt’)
readStream.pipe(writeStream)
console.log(‘管道流执行完毕’)
// 链式流,压缩和解压缩
var fs = require(‘fs’)
var zlib = require(‘zlib’)
var writeStream = fs.createWriteStream(‘gome.txt.gz’) // 压缩的名字
var readStream = fs.createReadStream(‘gome.txt’)
.pipe(zlib.createGzip()) // 压缩
.pipe(writeStream)
console.log(‘压缩完了’)
// exports和require
一:整个模块导出
demo2.js // 输出模块
// 公开整个模块
function demo2(){
this.a = 123
this.b = function(){
console.log(‘bbb’)
}
}
module.exports= demo2;
demo2_i.js // 导入模块
// 公开整个模块
function demo2(){
this.a = 123
this.b = function(){
console.log(‘bbb’)
}
}
module.exports= demo2;
二、单独导出某个方法
demo1.js // 导出demo1方法
exports.demo1 = function(){
console.log(‘demo1’,‘公开的方法’)
}
demo1_i.js // 导入模块
// 引入模块
var _demo1 = require(’./demo1’)
console.log(_demo1)
_demo1.demo1()
三、get & post
// url.parse 解析url
var http = require('http')
var util = require('util')
var url = require('url')
http.createServer(function (req,res){
res.writeHead(200,{
'Content-Type':'text/plain;charset=utf-8'
})
// url.parse获取url对象数据
// util把对象转为字符
var _param = url.parse(req.url, true).query;
console.log(_param) // 打印在控制台中
res.write('姓名'+_param.a) // 打印在页面中
res.write('\n年龄'+_param.b)
// res.end(util.inspect(url.parse(req.url)))
res.end()
}).listen(5642)
console.log('5642已经启动')
text/plain 纯文本解析,类似v-text
text/html 解析为html,类似v-html
// url.parse 解析url
var http = require('http')
var querystring = require('querystring')
var _formHtml = '<form method="post">'+
'网站名:<input name="name"><br>'+
'年龄:<input name="age"></br>'+
'<input type = "submit">'+
'</form>'
http.createServer(function (req,res){
var body = ''
req.on('data',function(_d){
// 当有数据的时候
body += _d
body = querystring.parse(body)
console.log(body.name)
})
req.on('end',function(){
res.writeHead(200,{
'Content-Type':'text/html;charset=utf-8'
})
res.write(_formHtml)
res.end()
})
}).listen(5642)
console.log('5642已经启动')