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:'注册成功'
  })
   
})
相关推荐
方方洛8 小时前
技术实践总结:schema-bridgion:json、xml、yaml、toml文件相互转换
xml·前端·typescript·node.js·json
心.c9 小时前
Vue3+Node.js实现文件上传并发控制与安全防线 进阶篇
前端·javascript·vue.js·安全·node.js
【赫兹威客】浩哥1 天前
【赫兹威客】Node.js安装教程
node.js
晨欣1 天前
pnpm vs npm 命令对照表
前端·npm·node.js
奔跑的web.1 天前
npm install发生了什么?
前端·npm·node.js
小二李1 天前
Node.js工程师养成计划
node.js
技术钱2 天前
node+egg搭建管理系统后台
node.js
敲敲了个代码2 天前
如何优化批量图片上传?队列机制+分片处理+断点续传三连击!(附源码)
前端·javascript·学习·职场和发展·node.js
梁萌2 天前
vue项目从npm升级为pnpm
前端·npm·node.js
墨着染霜华2 天前
npm-cache 怎么迁移出C盘
npm·node.js