当前位置:   article > 正文

NodeJs+Mysql+Express 撸一个后台_nodejs+express+mysql

nodejs+express+mysql

#NodeJs+Mysql+Express 撸一个后台

第一步:安装环境

  1. 下载Node http://nodejs.cn/download/
  2. 初始化package.json 文件
npm init
使用 npm init -y 这跳过提问阶段,直接生成一个package.json 文件,-y则是yes的意思

  • 1
  • 2
  • 3
  1. 安装 express npm i --save express
  2. 新建app.js文件,作为启动文件,先创建一个服务器,并启动
    这里写图片描述
const http = require('http');
const express = require('express');
const app = express();
const hostname = 'localhost';
const port = 1101;
app.get('/login',function (res,req) {
    console.log("我访问了");
});
const server = http.createServer(app);
server.listen(port, hostname, () => {
    console.log(`服务器运行在 http://${hostname}:${port}/`);
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

运行: node app.js
结果:
这里写图片描述

第二步:整理一下,将路由文件提取出去,单独一个文件(如下图:)
这里写图片描述
这里写图片描述

第三步: 每次改动都要启动太麻烦,需要启动后,实时响应更新,使用supervisor管理进程

npm i supervisor --save 
安装之后,在package.json配置启动项: "start": "supervisor app.js"
  • 1
  • 2

这里写图片描述

第四步: 解决跨域问题 安装:npm i --save cors
配置:

在router.js中加入
 app.use('*', function(req, res, next) {

        res.header('Access-Control-Allow-Origin', req.headers.origin);//注意这里不能使用 *
        res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
        res.header("X-Powered-By",' 3.2.1');
        res.header('Access-Control-Allow-Credentials', true); // 允许服务器端发送Cookie数据
        res.header("Content-Type", "application/json;charset=utf-8");
        res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');//设置方法
        if (req.method == 'OPTIONS') {
            res.sendStatus(200); // 在正常的请求之前,会发送一个验证,是否可以请求。
        }
        else {

          next();
        }

    });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

第五步: 设置静态文件

app.use('/public',express.static(__dirname + '/public'));
  • 1

第六步:链接数据库:安装mysql :npm i --save mysql
新建sqlConfig.js进行配置

const mysql = require('mysql');
let db = {};
db.connection = function () {
    let connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : '1101',
        port: '3306',
        database: 'shared',
    });
    //数据库连接
    connection.connect(function(err){
        if(err){
            console.log("err",err);
            return;
        }
    });
    return connection;
}
//关闭数据库
db.close = function(connection){
    //关闭连接
    connection.end(function(err){
        if(err){
            return;
        }else{
            console.log('关闭连接');
        }
    });
}
db.operate=function (connection,sql,param,callback) {
    connection.query(sql,param,function(err,data){
        if(err){

        } else {
          callback(data)
        }
    })
}

exports = module.exports = db;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

使用时

   app.get('/login',function (res,req) {
        var connect = db.connection();
        db.operate(connect,"UPDATE admin SET token=? WHERE id=?",[data1,data2],function(result){
            res.end(JSON.stringify({
                state:1,
                data:{
                    data:null,
                    token:""
                }
            }));
        });
    });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/395237
推荐阅读
相关标签
  

闽ICP备14008679号