周大胖子 发表于 2018-4-26 15:38:19

node 一些小基础

本帖最后由 周大胖子 于 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-8i)   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) Cmdb) F:c) F:\>cd F:\node.js\tjrd) 启动:F:\node.js\tjr>node 01.jse) 浏览器访问:http://localhost:8001/f) 快捷操作:(结束node) ctrl + c在开启上一条 :上箭头g) 注意事项:每改一次node代码都需要重新启动node服务

4. URL模块使用a) var url=require('url'); //引入urlb) 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 –yesc) 该文件入口设定:”main”:”bab.js”


7. 安装第三方模块:npm install jquery(没有会自动创建 node_modules 文件夹)a) 卸载模块:npm uninstall jqiery                也可以直接手动删除b) 查看已经安装的包:npm listc) 查看模块的版本: npm info jquery【这个是查看npm官方所有的包】d) 安装指定版本: npm install jquery@1.11.0e) 注意:以后安装模块的时候我们需要把这个模块写入到package.json这个配置文件, 写入方法:i. Npm install jquery --save 写入到package.json里面的dependenciesii. 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.statb) 创建目录:fs.mkdirc) 创建写入文件:fs.writeFiled) 追加问价:fs.appendFilee) 读取文件:fs.readFilef) 读取目录:fs.readdirg) 重命名:fs.renameh) 删除目录:fs.rmdiri) 删除文件:fs.unlinkj) 从文件流中读取数据:fs.createReadStreamk) 写入文件:fs.createWriteStreaml) 管道流:m) 备注:管道流就是 先读取流然后写入到一个文件写入流 n) 备注:异步加载不能使用for循环

11. 怎么做一个登陆a) 第一步:写好模板 login/dologin/longinoutb) 第二步:引入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 为全局变量 就是每个请求都可以拿来用 相当于canbusapp.locals['userinfo'] = req.session.userinfo;// 如果已经登录就继续next();}else{// 如果没登录就跳转到登录页res.redirect('/login'); //跳转到登录页}}})g) 因为定了全局值,所以每个请求都可以调用这个useinfo (esj模板里直接写)

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

页: [1]
查看完整版本: node 一些小基础