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:'注册成功'
  })
   
})
相关推荐
wno7041 天前
node.js中使用jquery
前端·node.js·jquery
damoluomu2 天前
Node 的 Headless 出厂没有前台,Java 的 Headless 是从门户里长出来的
java·开发语言·node.js
Dumbness2 天前
一个手机号验证码登录接口的五个坑:无限发码、无限试码,传个数字就让 Express 进程退出
node.js·express
怒放的生命19912 天前
本地用 pnpm 省磁盘,团队继续用 npm:极简实践
前端·npm·node.js
Hone3 天前
我把「自动发文章到掘金」做成了一个 Agent 技能:juejin-skills
node.js·ai编程·前端工程化
Dumbness3 天前
二十行手写的 SKILL.md 头部解析,遇到 YAML 的折叠写法、单引号和嵌套键就读错:和 js-yaml 逐条对照
node.js·ai编程
只睡四小时4 天前
MCP 弃用 SSE?Node 分帧漏 81.7% 事件
node.js·webassembly·实时通信·mcp·streamable http
hey you~4 天前
个体户门店办理400电话,如何对接订单系统实现来电弹窗
node.js·webhook·400电话·门店数字化·来电弹窗·订单系统对接
YIAN5 天前
RAG 学到最后,我真正学会的不是“检索”,而是让系统知道自己缺什么
langchain·node.js·llm