node搭建一个简易的接口(登录功能)

node搭建一个简易的接口

在这里插入图片描述

一. 环境准备

1.安装node

​ 可通过官网下载安装包,也可通过nvm安装,nvm可以管理多版本的node的下载切换,非常好用
(这是我之前发布的使用nvm的详细教程)
nvm下载安装node详细教程

2.安装mysql

​ mysql下载官网:

MySQL :: MySQL Community Downloads

​ 安装就无脑下一步

3.下载数据库工具

​ 我这里使用的是Navicat,大家可以自行下载
安装完成后打开软件,新建数据库(demo1)–>表(user)

在这里插入图片描述

二.发起请求

​ 新建一个index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <!-- post方式请求 -->
  <form action="http://localhost:8080" method="post">
    <input type="text" name="userName" />
    <input type="password" name="password" />
    <input type="submit" name="提交" />
  </form>
</body>
</html>

三.写接口

1.建立一个项目文件夹demo1

2.通过cmd进入这个文件夹

3.在cmd中输入npm install mysql回车,安装mysql依赖; 出现mysql@版本即安装成功

4.新建一个service.js文件

//引入各种依赖(除了mysql外,都是node自带的不需要额外下载)
const http = require('http');
const querystring = require('querystring')
const url = require('url')
const mysql = require('mysql')

//创建http连接
const server = http.createServer((req,res)=>{
  
  const reqUrl = req.url

  if(reqUrl !== '/favicon.ico'){	//由于网站图标也会被当做一次请求,所以给取消掉
    let postVal = "";	//存放接收值的变量
    req.on('data',(chunk)=>{
      postVal+=chunk
    })

    req.on('end',()=>{
      // 拿到的结果
      let formVal = querystring.parse(postVal);	//将拿到的字符串转为对象
      let {userName,password} = formVal
      console.log(userName,password);

      // 创建数据库链接
      const connection = mysql.createConnection({
        host:'localhost',	//主机名/ip地址 (在本地跑就用localhost)
        user:'root',	//安装mysql时设置的账号密码
        password:'123@qwe',	
        database:'demo1'	//数据库名称
      })

      connection.connect(); //开启数据库链接

      // 数据库查询
       connection.query('select * from user where userName = ? and password = ?',[userName,password],(err,resulte,fields)=>{
         if(err) throw err;
         if(resulte.length>0){	//查询的结果,如有查到一条,就说明有此人,登录成功
           res.writeHead(200,{'Content-Type':'text/html;charset=utf8'})
           res.write('登录成功')
           console.log('登录成功!!!',);
         }
         res.end()	//响应结束
       })

      connection.end() //关闭数据库链接
    })
  }
  
  
})

server.listen(8080)	//监听端口号

5.在cmd使用命令 node service.js 运行就完成了

此时一个简易的登录接口就完成了

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,首先我们需要安装一些依赖: - express:用于搭建服务器; - body-parser:用于解析请求体中的数据; - jsonwebtoken:用于生成和验证 token。 可以使用以下命令安装: ``` npm install express body-parser jsonwebtoken ``` 接下来就可以开始代码了。 首先创建一个 `index.js` 文件: ``` const express = require('express'); const bodyParser = require('body-parser'); const jwt = require('jsonwebtoken'); const app = express(); app.use(bodyParser.json()); const JWT_SECRET = 'mysecretkey'; app.post('/api/login', (req, res) => { const { username, password } = req.body; // 这里需要根据实际情况验证用户名和密码是否正确 if (username === 'admin' && password === 'admin') { const token = jwt.sign({ username }, JWT_SECRET); res.json({ token }); } else { res.status(401).json({ message: '用户名或密码错误' }); } }); app.post('/api/register', (req, res) => { // 这里需要根据实际情况处理注册逻辑 res.json({ message: '注册成功' }); }); app.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` 上面的代码中,我们使用了 `jsonwebtoken` 生成了一个 token,并将其返回给客户端。客户端以后可以使用这个 token 发送请求。 接下来,需要编 token 验证的中间件: ``` function auth(req, res, next) { const authHeader = req.headers.authorization; if (authHeader) { const token = authHeader.split(' ')[1]; try { const decoded = jwt.verify(token, JWT_SECRET); req.user = decoded; next(); } catch (err) { res.status(401).json({ message: '无效的 token' }); } } else { res.status(401).json({ message: '未提供 token' }); } } ``` 这个中间件会检查请求头中是否包含 token,如果包含则验证 token 的有效性,并将解码后的用户信息保存到 `req.user` 中。 最后,我们编一个需要认证的 API 接口: ``` app.get('/api/profile', auth, (req, res) => { res.json({ username: req.user.username }); }); ``` 这个接口需要认证,需要通过 `auth` 中间件验证用户的 token。 至此,我们已经完成了登录注册和认证的接口。如果需要更复杂的功能,可以根据实际情况进行扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值