node-express项目搭建

前言:个人经验用vscode和webStorm完成过node-express项目的搭建。

安装步骤

  1. 建议使用淘宝镜像安装cnpm:npm install -g cnpm – registry=https://registry.npm.taobao.org
  2. 安装模块express:cnpm install express -g
  3. 安装express脚手架:cnpm install express-generator -g
  4. 创建文件夹:express cinema
  5. 进入cinema文件夹:cd cinema
  6. 安装相应模块:cnpm install
  7. 安装数据库mysql:cnpm i mysql -S
  8. 运行express:cnpm start
  9. 在浏览器输入http://localhost:3000,如果显示express,安装成功!
    在这里插入图片描述

项目目标

  1. 开始目录结构
    在这里插入图片描述
  2. 完成后目录结构
    在这里插入图片描述

项目搭建

  1. 可以改变bin模块www.js文件里的端口号,默认是3000.
    在这里插入图片描述
  2. 创建conf模块下的db.js,完成数据库的配置信息.
// 数据库的配置信息
const MYSQL_CONF = {
    host:"localhost",
    user:"root",
    password:"123456",
    port:3306,
    database:"cinema"
};
module.exports = { MYSQL_CONF };
  1. 创建db模块下的mysql.js,完成数据库的连接.
// 导入数据库
const mysql = require("mysql");
// 创建连接对象
const {MYSQL_CONF} = require("../conf/db.js");
const con = mysql.createConnection(MYSQL_CONF);
// 开始连接
con.connect();
// 提供统一  执行sql
function executeSql( sql ) {
    let promise = new Promise(( resolve , reject ) => {
        con.query( sql , ( err , result ) => {
            if ( err ){
                reject(err);
                result ;
            } else {
                resolve( result );
            }
        } )
    });
    return promise ;
}
module.exports = { executeSql };
  1. 创建msg模块下的BaseMsg.js,完成用户请求,返回成功、失败信息的封装.
class BaseMsg{
    constructor(data,message){
        //如果只有提示信息,没有数组信息,例如:用户登录 ,添加商品
        if(typeof data ==="string"){
            this.message = data;
            data=null;
            message =null;
        }
        //如果有提示信息,也有数组信息,分别赋值
        if(data){
            this.data = data;
        }
        if(message){
            this.message = message;
        }
    }
}
//成功信息
class SuccessMsg extends BaseMsg{
    constructor(data,message){
        super(data,message);
        this.errorNo=0;
    }
}
//失败信息
class ErrMsg extends BaseMsg{
    constructor(data,message){
        super(data,message);
        this.errorNo=-1;
    }
}
module.exports={SuccessMsg,ErrMsg};
  1. 创建models模块下的usermodel.js,完成用户登录的sql语句.
const {executeSql} = require("../db/mysql");
const login = (name,pass)=>{
    let sql = `select * from user where name='${name}' and pass='${pass}'`;
    return executeSql(sql);
};
module.exports={login};
  1. 在routes模块下的users.js,完成用户登录接口。
    一般情况下:
    读取:get ----- req.query.参数
    修改:put ----- req.body
    添加:post ----- req.body
    删除:delete ----- req.query.参数
var express = require('express');
var router = express.Router();
const {login} = require("../models/usermodel");
const {SuccessMsg,ErrMsg}=require("../msg/BaseMsg")
/* POST users listing. */
router.post('/login', async function(req, res, next) {
  res.setHeader("Access-Control-Allow-Origin","*")
  const {name,pass} = req.body;
  let result = await login(name,pass);
  if(result.length>0){
    res.json(new SuccessMsg(result,"登录成功"));
  }else{
    res.json(new ErrMsg("登录失败"));
  }
});
module.exports = router;
  1. 每次写完一个功能接口都要在app.js里相应位子添加两行代码,如登录接口.
var usersRouter = require('./routes/users');
app.use('/users', usersRouter);

结果

  1. 请求
    在这里插入图片描述
  2. 结果
    在这里插入图片描述
    如有错误,感谢大家的指点;
    如有好的实现方法,也感谢大家向我分享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值