官网
node.js 比较流行的框架是Express ,和Python的Flask类似。
bash
## 中文网
https://www.expressjs.com.cn/
## 官网
https://expressjs.com/
## 查询mysql返回json示例
https://blog.csdn.net/knight_zhou/article/details/139013695
环境
bash
mkdir myapp
npm init
##
npm install express --save
基础
路由
javascript
// GET method route
app.get('/', function (req, res) {
res.send('GET request to the homepage')
})
// POST method route
app.post('/', function (req, res) {
res.send('POST request to the homepage')
})
静态文件
javascript
/*
powershell启动: $env:DEBUG='myapp:*'; npm start
或者这样启动: node.exe .\bin\www
*/
// curl 127.0.0.1:3000/static
app.use('/static',express.static(path.join(__dirname, 'public'))); // 静态文件目录
模板渲染
bash
# 官网
https://expressjs.com/en/guide/using-template-engines.html
支持如下三种模板引擎:
读取数据库配置文件
bash
# 依赖
myapp@1.0.0 D:\node.js-res\devops\myapp
├── config@3.3.11
├── express@4.19.2
├── mysql@2.18.1
├── nconf@0.12.1
└── redis@4.6.14
config.js
javascript
{
"mysql_info": {
"host": "localhost",
"user": "root",
"password": "root",
"database":"db_devops"
},
"redis_info":{
"url":"redis://10.10.10.14:6379",
"password":"123456"
}
}
app.js
javascript
const express = require('express');
const mysql = require('mysql');
const redis = require('redis');
const fs = require('fs');
const path = require('path');
// 读取配置文件
const configPath = path.join(__dirname, 'config.json');
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
// 配置MySQL连接
const connection = mysql.createConnection({
host : config.mysql_info.host,
user : config.mysql_info.user,
password : config.mysql_info.password,
database: config.mysql_info.database
});
// 连接MySQL
connection.connect();
// 创建一个客户端连接到Redis服务器
const client = redis.createClient({
url: config.redis_info.url, // 替换为你的Redis服务器地址和端口
// username: "knight",
password: config.redis_info.password
});
// 监听错误
client.on('error', (err) => {
console.log('Redis Client Error', err);
});
// 连接到Redis
client.connect();
// 设置键值对
const app = express();
const port = 1234;
// 查询数据的API
app.get('/api/data', (req, res) => {
const sql = 'SELECT * FROM student';
connection.query(sql, (error, results, fields) => {
if (error) throw error;
res.json(results); // 将查询结果以JSON格式返回
});
});
// redis
app.get('/api/redis', (req, res) => {
client.set('name', 'vego', redis.print);
console.log('test insert redis');
res.send("ok");
});
// 启动服务器
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});