Node.js 学习笔记09|express(三)param

当服务器端口被占用时使用如下指令

//netstat -ano|findstr "3000”

//taskkill -PID xxxxx  -F

get请求发送参数的第二种方式

//  /hello/:id 表示当前用户访问 /hello/xxx 时就会触发
//在路径中已冒号命名的部分称为param,在get请求它可以被解析为请求参数
//req.query以对象形式传参 params按照类似数据方式传参
//params一般不会传递特别复杂的参数
app.get("/hello/:name/:age/:gender",(req,res) => {
    //约定优于配置

    //可以通过req.param属性来获取这些参数
    console.log(req.params);
    res.send("hello")
})

get传输参数的方式安全性较低,因此较常使用post请求,利用请求体提高安全性,同时不限制参数的大小。默认情况下 express不会自动解析请求体,需要通过中间件来为其添加功能。通过req.body来获取post请求的参数(请求体的参数)。

//引入解析请求体的中间件以使用req.body
app.use(express.urlencoded())

app.post("/login", (req,res) => { 
    // console.log(req.body);
    const username = req.body.username
    const password = req.body.password
    if(username === "admin" && password === "123"){
        res.send("登录成功")
    }else{
        res.send("xxx")
    }
    // res.send("<h1>post请求已收到</h1>")
})

//从登录页面获取信息
app.post("/login", (req,res) => {
    const username = req.body.username
    const password = req.body.password

    //方法1.遍历数组 验证用户密码是否正确
    //获取到用户的信息后需要根据用户名去用户数组中查找用户
    // for(const user of USERS){
    //     if(user.username === username){
    //         //用户存在 检查密码
    //         if(user.password === password){
    //             res.send(`<h1>登陆成功 ${user.nickname}</h1>`)
    //             return
    //         }
    //     }
    // }
    // res.send("<h1>用户名或密码错误</h1>")
  
    //方法2.find方法
    const loginUser = USERS.find((item) => {
        return item.username === username && item.password === password
    })

    if(loginUser){
        res.send(`<h1>登陆成功 ${loginUser.nickname}</h1>`)
    }else{
        res.send("<h1>用户名或密码错误</h1>")
    }

})

//用户注册
app.post("/register", (req,res) => {
    //获取用户输入的数据
    // console.log(req.body);
    const {username,password,repwd,nickname} = req.body
    const user = USERS.find(item =>{
        return item/username === username || item.nickname === nickname
    })
    // console.log(user);
    if(!user){
        //进入判断说明用户不存在,可以注册
        USERS.push({
            username,
            password,
            nickname
        })
        res.send("<h1>注册成功</h1>")
    }else{
        res.send("<h1>用户名已存在</h1>")
    }
})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用 Node.js 操作存储过程的例子。我们假设你已经成功连接到了 MS SQL Server 数据库,现在需要执行一个存储过程来查询数据。首先,你需要定义一个存储过程的名称和需要传入的参数: ```javascript const procedureName = 'your-procedure-name'; const params = { param1: 'value1', param2: 'value2' }; ``` 然后,你可以使用 `input` 和 `output` 方法来定义输入参数和输出参数(如果有的话): ```javascript const request = pool.request(); // 定义输入参数 request.input('param1', sql.VarChar, params.param1); request.input('param2', sql.VarChar, params.param2); // 定义输出参数 request.output('outputParam', sql.VarChar); ``` 在上面的代码,我们使用 `request.input()` 方法来定义输入参数,参数分别为参数名、数据类型和参数值。数据类型可以使用 mssql 包提供的常量,例如 `sql.VarChar`。如果存储过程需要输出参数,我们可以使用 `request.output()` 方法来定义输出参数。 接下来,你可以使用 `execute` 方法来执行存储过程,并处理返回结果: ```javascript const result = await request.execute(procedureName); // 处理输出参数 console.log(result.outputParam); // 处理查询结果 console.log(result.recordset); ``` 在上面的代码,我们使用 `request.execute()` 方法来执行存储过程,参数为存储过程名。执行结果会以对象形式返回,其包含查询结果和输出参数(如果有的话)。你可以使用 `result.recordset` 来获取查询结果,使用 `result.outputParam` 来获取输出参数。 当然,实际的存储过程可能更加复杂,需要更多的输入参数和输出参数。你需要根据具体的需求进行编写代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值