node.js Express

一.快速入门

https://learn.microsoft.com/zh-cn/azure/app-service/quickstart-nodejs?tabs=windows&pivots=development-environment-vscode

(1)创建express app

        npx express-generator myExpressApp --view ejs

(2)安装npm包

        cd myExpressApp

        npm install

(3)启动

        npm start

localhost:3000进入

修改端口号在bin/www下

二.跨域(app.js)

app.all('*',function (req, res, next) {
  if(req.headers.origin == '前端链接')
      res.header('Access-Control-Allow-Origin', req.headers.origin);
  res.header('Access-Control-Allow-Headers', 'Content-Type');
  res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
 next(); 
});

三.空白页面

(1)routes文件夹下 test.js

var express = require('express');
var router = express.Router();
router.get('/', async function (req, res, next) {
    console.log("测试页面get");
    res.send("这是get");
});
router.post('/', async function (req, res, next) {
    console.log("测试页面post");
    res.send("这是post");
});
module.exports = router;

一个正常请求该有的内容

(2)app.js

var testRouter = require('./routes/test');
app.use('/test', testRouter);

localhost:3000/test进入

四.插件

1.token(jsonwebtoken)

    (1)安装

            npm install jsonwebtoken --save

    (2)使用

const jwt = require('jsonwebtoken') //引用
const jwtKey = 'njustjwc' //加密密钥
    
//创建Token expiresIn:有效时间
const token = jwt.sign(data, jwtKey, { expiresIn: "3h" })
    
//检验token合法/通过token获取原对象
var Decode;
jwt.verify(token, jwtKey, function (err, decode){
    if (err) {Decode=err}
    else {Decode=decode}
});
//如果token合法,则Decode为创建token时的对象

    高兴的话可以自己写个token处理的js文件

2.body-parser(用于post下获取传递参数)

     (1)安装

            npm install body-parser

     (2)使用

const bodyparser = require('body-parser');//引用,之后可以通过req.body.参数名 来获取传递的参数

3.mysql

    (1)安装

            npm install mysql

    (2)使用

const mysql = require("mysql");//引用

//创建连接
var connection;
connection = mysql.createConnection({
    host     : 'localhost',         //服务器地址,连接本机可以使用localhost或者127.0.0.1
    user     : 'root',              //连接数据库的用户名
    password : 'password',               //连接数据库的密码
    database : 'database',          //数据库的名称
    port: 3306,                 //数据库端口号,默认3306,可以省略不写
    timezone: "SYSTEM",
});
connection.connect();


//请求一条语句的示例(如果是用函数返回结果)
//async使用后只有结果获取到后才会返回结果
//调用此函数的其他函数需要await sql_query(query)
async function sql_query(query) {
    var connection;
    connection = mysql.createConnection({
        host     : 'localhost',         //服务器地址,连接本机可以使用localhost或者127.0.0.1
        user     : 'root',              //连接数据库的用户名
        password : 'password',               //连接数据库的密码
        database : 'database',          //数据库的名称
        port: 3306,                 //数据库端口号,默认3306,可以省略不写
        timezone: "SYSTEM",
    });
    connection.connect();
    return new Promise((success, error)=> {
        connection.query(query, function (error, results, fields) {
            if (error)
                throw error;
            success(results);
            connection.end();
        });
    });
}


点赞

发表回复