老莫的笔记本  
  
查看: 1195|回复: 0

node 一些小基础

[复制链接]

664

主题

881

帖子

5167

积分

超级版主

Rank: 8Rank: 8

积分
5167
发表于 2018-4-26 15:38:19 | 显示全部楼层 |阅读模式
本帖最后由 周大胖子 于 2018-4-26 15:39 编辑

1. 引入HTTP模块
a) var http=require('http');
b) 清空指令符面板: cls


2. 用HTTP模块创建服务:
a) // req获取url信息         (request)
b) // res 浏览器返回响应信息 (response)
c)
d) http.createServer(function(req,res){
e)
f)     // 发送http头部
g)     // HTTP状态值:200 :OK
h)     // 设置HTTP头部,状态码200,文件类型html,字符集utf-8
i)     
j)     res.writeHead(200,{"Content-Type":"text/html;charset='utf-8'"});
k)
l)     res.write('你好 node.js');
m)
n)     res.write('我是第一个nodejs程序');
o)
p)     res.end(); //结束响应
q)
r) }).listen(8001); //监听端口号8001


3. 启动
a) Cmd
b) F:
c) F:\>cd F:\node.js\tjr
d) 启动F:\node.js\tjr>node 01.js
e) 浏览器访问:http://localhost:8001/
f) 快捷操作(结束node) ctrl + c  在开启上一条 上箭头
g) 注意事项:每改一次node代码都需要重新启动node服务


4. URL模块使用
a) var url=require('url'); //引入url
b) url.parse()        解析URL
c) url.format(urlObject)         //是上面url.parse() 操作的逆向操作
d) url.resolove(from,to)        添加或者替换地址


5. 使用supervisor 代替node 好处:改变代码后不需要重启就可以运行


6. 简写foot = require(‘foot’);

a) 默认在目录下没有,nodejs就会node_modules找这个模块
b) 如果node_modules文件夹中的文件夹生成package.json文件:
i. F:\node.js\tjr\02\node_modules\bab>npm init –yes
c) 该文件入口设定:”main”:”bab.js”


7. 安装第三方模块:npm install jquery  (没有会自动创建 node_modules 文件夹)
a) 卸载模块:npm uninstall jqiery                也可以直接手动删除
b) 查看已经安装的npm list  
c) 查看模块的版本: npm info jquery  【这个是查看npm官方有的
d) 安装指定版本: npm install jquery@1.11.0
e) 注意以后安装模块的时候我们需要把这个模块写入到package.json这个配置文件, 写入方法:
i. Npm install jquery --save 写入到package.json里面dependencies
ii. Npm install jquery         --save-dev 写入devDependencies


8. Package.json : 定义这个项目所需的各个模块以及项目信息
a) 第一步CD到指定文件夹,
i. npm init – yes  创建Package.json文件强制生成
ii. npm init   创建packages.json 下一步下一步  一步步生成;
b) 第二步


9. 如果把代码发给别人,可以把node_modules文件夹全部删掉, 然后在文件夹下运行:npm install   这样就会直接更具package.json 文件内的数据 创建node_modules文件并且自行下载。(前提 最好是通过npm安装的模块自动会记录在内,但是手工的嘛—你就得自己写进去。



10. fs模块
a) 检测是文件还是目录:fs.stat
b) 创建目录:fs.mkdir
c) 创建写入文件:fs.writeFile
d) 追加问价:fs.appendFile
e) 读取文件:fs.readFile
f) 读取目录:fs.readdir
g) 重命名fs.rename
h) 删除目录:fs.rmdir
i) 删除文件:fs.unlink
j) 从文件流中读取数据:fs.createReadStream
k) 写入文件:fs.createWriteStream
l) 管道
m) 备注管道流就是 读取流然后写入到一个文件写入
n) 备注:异步加载不能使用for循环


11. 怎么做一个登陆
a) 第一步:写好模板 login/dologin/longinout
b) 第二步:引入session
c) 第三步:login 时候 拿着这个数据去数据库里搜  
d) 第四步:搜到后保存出 数据库里userinfo 的值 到session
e) 第五步:写一个中间件(判断是否登录的),
f) 第六步:
// 自定义中间件====判断有没有登录
app.use(function(req,res,next){
if(req.url=='/login' || req.url=='/dologin'){
next();
}else{
if(req.session.userinfo&& req.session.userinfo.username!=''){
// 存储session的userinfo 为全局变量 就是每个请求都可以拿来用 相当于canbus
app.locals['userinfo'] = req.session.userinfo;
// 如果已经登录就继续
next();
}else{
// 如果没登录就跳转到登录页
res.redirect('/login'); //跳转到登录页
}
}
})
g) 因为定了全局值,所以每个请求都可以调用这个useinfo (esj模板里直接写)


12. 路由模块化 入口文件仍然是APP.JS 该文件 只实现路由到对应模块 】  
a) 划分模块 【例如:商品管理、登录、用户管理】
b)


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表