Node.js Express

15 express

1.问题

node http创建服务繁琐

代码不美观,代码量多

2.express

  1. 封装服务器

  2. 快速搭建后端项目

3.如何使用

安装

javascript 复制代码
npm i express

4.创建服务

javascript 复制代码
// 1.导入express
const express = require('express')
​
// 2.创建服务
const app = express()
​
// 3. 监听请求
app.get('/', function (req, res)  {
    // 向前端响应数据
    res.send('hello world')
})
​
// 4.启动服务
app.listen(3000, function () {
    console.log('服务已移动,您可以访问3000端口啦');
})

5.获取请求参数

req.query (get请求) / req.body(post请求)

对于post请求

1.安装 body-parse

javascript 复制代码
npm i body-parser

express生成器

1.开发后端项目,需要搭建后端项目结构

  1. express-generator 解决上述问题

2.全局下载express-generator

bash 复制代码
npm i express-generator -g 

3.快速创建项目

javascript 复制代码
express --view=pug myapp
express myapp
​
cd myapp  进入项目根目录
​
yarn / npm i   安装依赖

项目目录说明

复制代码
bin  服务
node_modules  第三方包
public  存放静态资源 图片 样式等
routes  存放路由
views   存放html页面
app.js  项目入口
package.json  npm配置
yarn.lock  yarn 安装包  会生成一个yarn.lock   

注册接口

1.创建users表

sql 复制代码
create table users (
  id int not null primary key auto_increment,
  username varchar(30) not null,
  password varchar(30) not null,
  phone  varchar(11) not null,
  smscode varchar(10) not null,
  email varchar(30)
)

2.在routes/users目录新增注册

1.封装query

javascript 复制代码
const mysql = require('mysql')
const pool = mysql.createPool({
    connectionLimit:10,
    host:'localhost',
    user:'root',
    password:'lzg123',
    database:'py'
})
​
function query (sql) {
    return new Promise(function (resolve, reject) {
        pool.getConnection(function (err, connection) {
            console.log(sql,'sql');
            connection.query(sql, function (err, data) {
                 connection.release();
                 if (err) return;
                 resolve(data)
             })
        })
    })
}
​
module.exports = query;

2.在routes/users.js 新增post请求的注册接口

javascript 复制代码
var query = require('../db/query')
// 注册 post请求
router.post('/register', async function (req, res) {
   // 获取请求参数
   const { username, password, phone,smscode } = req.body
   if (!username || !password || !phone ) res.send({
     status:400,
     message:'请求参数有误'
   })
   
  //  插入用户信息到users
  let sql = `insert into users (username, password, phone,smscode) values('${username}', '${password}','${phone}','${smscode}')`;
  await query(sql)
  res.send({
    status:200,
    message:'注册成功'
  })
   
})
相关推荐
家有狸花12 分钟前
Node.js笔记(四)局域网聊天室2:服务端接受客户端消息
笔记·node.js
丁总学Java1 小时前
thread_id_key != 0x7777(`fibers` 包与 Node.js 16 及以上版本存在兼容性问题)
node.js·fibers
程楠楠&M15 小时前
node.js第三方Express 框架
前端·javascript·node.js·express
盛夏绽放15 小时前
Node.js 和 Socket.IO 实现实时通信
前端·后端·websocket·node.js
Roc.Chang17 小时前
macos 使用 nvm 管理 node 并自定义安装目录
macos·node.js·nvm
怕冷的火焰(~杰)18 小时前
Node基本使用
node.js
_半夏曲20 小时前
node.js、nginx、iis、tomcat针对部署方面的简述
nginx·node.js·tomcat
生椰拿铁You21 小时前
09 —— Webpack搭建开发环境
前端·webpack·node.js
广煜永不挂科21 小时前
Devexpress.Dashboard的调用二义性
c#·express
星星会笑滴1 天前
vue+node+Express+xlsx+emements-plus实现导入excel,并且将数据保存到数据库
vue.js·excel·express