封装res.send()

本文详细解释了Node.js中app.use()方法的用法,包括参数解析、ES6默认形参概念,以及如何利用res.send()进行错误处理和响应改造的示例。
摘要由CSDN通过智能技术生成

app.use()方法 (中间件方法)

语法:app.use([path], callback, [callback])

参数解析:

  • path : 指定的中间件函数的放的路径(路由地址),可选参数。
  • callback : 指定的中间件函数,可以是多个。并且这些回调函数可以调用next()

ES6 默认形参

在书写形参时,直接给形参赋值,赋的值即是默认值。这样一来,当调用函数时,如果没有给对应的参数赋值(给它的值是undefined),则自动使用默认值

// function sum(a, b = 1, c = 2) {
//     return a + b + c;
// }
// console.log(sum(10))     //13
// console.log(sum(11))    //14

// console.log(sum(10, undefined, undefined))   //13
// console.log(sum(1, undefined, 5))       //7

res.send()改造代码

app.use(function(req,res,next){
    res.cc=function(err,status=1){
        res.send({
            status,
            message:err instanceof Error?err.message:err,
        })
    }
    next()
})
res.send('注册成功',0)
res.cc('注册失败')

// 1、导入模块 const express = require('express'); const mongoose = require('mongoose'); let {log} = console; // 2、创建服务器 const app = express(); app.use(express.static('public'));//设置静态资源文件夹 // 解析post请求 app.use(express.urlencoded({extended:true}),express.json()) // 连接数据库 mongoose.connect('mongodb://localhost/info') .then(()=>log('数据库连接成功')) .catch(()=>log('数据库连接失败')) // 设置集合规则 const infoSchema = new mongoose.Schema({ username:String, password:String }) // 使用集合规则创建集合 const User = mongoose.model('User',infoSchema); // 4、发请求 app.post('/add',(req,res)=>{ // log(req.body); let {username,password} = req.body; // log(username,password) // res.send(JSON.stringify(req.body)) let res1 = User.find({username:username}).then(result=>{ if(result.length==0){ User.create({username:username,password:password}); res.send('true') }else{ res.send('fasle') } }) }) // 3、监听端口 app.listen(3000,()=>log("服务已启动,端口号为3000")) window.onload=function(){ const username = document.getElementsByName('username')[0]; const password = document.getElementsByName('password')[0]; const submit = document.querySelector('.sub'); // console.log(username,password,submit); let userReg = /^[a-zA-Z]{3,10}$/; let pwdReg = /^[0-9]{6,10}$/; submit.onclick = () =>{ if(userReg.test(username.value)&&pwdReg.test(password.value)){ let xhr = new XMLHttpRequest(); xhr.open('post','http://localhost:3000/add',true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send(`username=${username.value}&password=${password.value}`); // location.href='login.html'; } } }这两段代码应该怎么优化
06-01
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值