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:'注册成功'
  })
   
})
相关推荐
猫头虎-前端技术19 分钟前
浏览器兼容性问题全解:CSS 前缀、Grid/Flex 布局兼容方案与跨浏览器调试技巧
前端·css·node.js·bootstrap·ecmascript·css3·媒体
切糕师学AI1 小时前
前后端分离架构中,Node.js的底层实现原理与线程池饥饿问题解析
前端·vue.js·node.js
ningmengjing_2 小时前
webpack打包方式
前端·爬虫·webpack·node.js·逆向
Yuner20002 小时前
Webpack开发:从入门到精通
前端·webpack·node.js
大虾写代码12 小时前
nvm和nrm的详细安装配置,从卸载nodejs到安装NVM管理nodejs版本,以及安装nrm管理npm版本
前端·npm·node.js·nvm·nrm
EndingCoder13 小时前
Electron 跨平台兼容性:处理 OS 差异
前端·javascript·electron·前端框架·node.js·chrome devtools
艾小码1 天前
手把手教你实现一个EventEmitter,彻底告别复杂事件管理!
前端·javascript·node.js
前端小哲1 天前
MCP从入门到实战
node.js·ai编程
dasseinzumtode1 天前
nestJS 使用ExcelJS 实现数据的excel导出功能
前端·后端·node.js