
nodejs
LOI_DawnKing-
还记得年少时的梦吗?像一朵永不凋零的花。
展开
-
代码记录:一种 async/await 优雅的错误处理方法
https://juejin.cn/post/6844903767129718791自己测试代码:const newFunction = new Promise((resolve, reject) => { setTimeout(() => { // resolve({ // msg: 'success' // }); reject({ msg: 'err' }); }, 1000);});const awaitWrap原创 2022-01-30 23:55:59 · 673 阅读 · 0 评论 -
import export async 异步
import 会执行对应文件的代码,但是是异步的原创 2022-01-30 22:23:02 · 1053 阅读 · 0 评论 -
express3:脚手架、路由模块化、Express应用生成器
建立routes文件里,里面可以有Login.js,此js中暴露这个模块里边的接口是router.get()var router = express.Router()module.exports = router然后在app.js中进行引入和挂载,比如const login = require("./routes/login").app.use("/login",login)示例应用生成器...原创 2020-09-27 14:38:09 · 245 阅读 · 0 评论 -
express2:中间件
1 应用级中间件 (用于权限判断)在匹配路由之前,做一些操作, next之后会继续匹配路由app.use((res, req, next) => { console.log(new Date()) next()})2 路由级中间件在动态路由之前,可以特定匹配某些字符3 错误处理中间件用于判断路由之后app.use((res, req, next) => { res.status(404).send("404")})4 内置中间件即 静态web服务5 第原创 2020-09-26 14:17:21 · 265 阅读 · 0 评论 -
express基础1:路由
1 动态路由2 get 传值原创 2020-09-26 13:47:56 · 216 阅读 · 0 评论 -
nodejs 与 MongoDB1 增删改查
1 查找数据2 增加数据这个好像也应该加个关闭数据库3 修改数据4 删除一条数据5 删除多条数据原创 2020-09-21 20:45:38 · 211 阅读 · 0 评论 -
nodejs8: 仿express封装,模块化get post和静态web服务
思路:想要在app.js里实现app.get('/', function(req, res) { res.send('首页');})这样就能配置路由的效果。首先我们分析,app.js里的这种路由格式有两个参数,第一个参数是名字,第二个是真正要执行的动作函数。那么我们在routes.js中每次接收到这两个参数就注册一个路由,定义一个全局的对象G,G的下标是第一个参数即名字,内容便是第二个参数那个函数,这样每次有http请求的时候,都检查一下G的路由名字有没有被注册过,如果有的话直接跟前一.原创 2020-08-10 23:38:38 · 311 阅读 · 0 评论 -
nodejs7: 原生nodejs模块化封装路由 + ejs
思路:将所有路由都封装在 routes 内,在app.js中把每次可能的路径信息都只是调用routes,routes中统一格式做适配。在app.js中:1.创建静态web服务(这个是用作访问静态站点或者文件比如路径后加入index.html等等)2.实现路由(这个是类似于www.xxx.con/login 这种形式,没有访问文件但是需要实现某种操作)以上两种情况都被看做 routes中的方法,其中1的名字肯定叫static,2每一个可能的路由都弄一个名字,名字的参数是一样的,所以可以直接用变量替代.原创 2020-08-09 20:12:47 · 515 阅读 · 0 评论 -
nodejs6: 原生 get post 方法
1 get请求1.1 区分类型req.method1.2 获得内容var query = url.parse(req.url, true).query;2 post//app.js... if (pathname == '/login') { ejs.renderFile('./views/form.ejs', (err, data) => { res.writeHead(200, { 'Content-Type': 'text/html;原创 2020-08-05 19:34:13 · 254 阅读 · 0 评论 -
nodejs5: 静态web服务器、ejs
1 路由文件结构:// app.jsconst http = require('http');const routes = require('./module/routes');const url = require('url');http.createServer(function (req, res) { // 创建静态web服务 routes.static(req, res, 'my_website'); // 路由 let pathname = url原创 2020-08-05 19:05:06 · 182 阅读 · 0 评论 -
nodejs5: fs输入输出流,管道流
1 读取流各种监听var readStream = fs.createReadStream('./data/input.txt');var str = '';readStream.on('data', (data) => { str += data; count ++; console.count();})readStream.on('end', () => { console.log(str);})readStream.on('error原创 2020-08-04 11:18:57 · 409 阅读 · 0 评论 -
nodejs4: 递归, async await
实现功能:打印wwwroot下所有的目录注意如果按照普通逻辑写是不行的,因为在fs里面是异步的。解决思路:1.改造for循环,递归实现 2.nodejs里面的新特性 async await1 递归:匿名自执行函数const fs = require('fs');var path = './wwwroot';var dirArr = [];fs.readdir(path, (err, files) => { if (err) throw err; (function g原创 2020-08-04 00:19:40 · 1367 阅读 · 0 评论 -
nodejs3: fs, mkdirp
1 fs1.0 引入包const fs = require('fs');1.1 fs.stat 检测是文件还是目录fs.stat('./html', (err, data) => { if (err) { console.log(err); return; } console.log('是文件:' + data.isFile()); console.log('是目录:' + data.isDirectory());})1.原创 2020-08-02 11:56:32 · 566 阅读 · 0 评论 -
nodejs2: CommonJS 与 第三方包
1 CommonJS前者也叫系统模块,后者也叫自定义模块。// module/tools.jsfunction formatApi(api) { return "www.baidu.com/" + api;}exports.formatApi = formatApi;原创 2020-08-01 21:37:49 · 225 阅读 · 0 评论 -
nodejs1: nvm, http模块, url模块, nodemon与supervisor
1 nvmhttps://www.cnblogs.com/gaozejie/p/10689742.htmldownload: https://github.com/coreybutler/nvm-windows/releases1.1 安装/管理nodejs1、查看本地安装的所有版本;有可选参数available,显示所有可下载的版本。nvm list [available]2、安装,命令中的版本号可自定义,具体参考命令1查询出来的列表nvm install 11.13.03、使用特定版本原创 2020-08-01 17:40:46 · 574 阅读 · 0 评论 -
Nodejs express用户登录注册以及授权 bcrypt+JWT
npm i bcrypt密码加密set(val) { return require('bcrypt').hashSync(val, 10) // 散列强度/指数}密码解密比对const isPasswordValid = require('bcrypt').compareSync( req.body.password, user.password)生成tokennpm i...原创 2020-03-01 23:40:12 · 909 阅读 · 4 评论