No more than code.
DEMO 使用 vue / vuex / mysql / node
启动mysql
-
以管理员身份运行cmd
-
启动服务命令:net start mysql
server
在项目根文件夹下创建一个server文件夹。然后里面创建以下文件:
-
db.js—用来添加mysql配置
// 数据库连接配置 module.exports = { mysql: { host: 'localhost', user: 'root', password: '', database: 'users', port: '3306' } }
-
index.js—Express服务器入口文件
// node 后端服务器 const userApi = require('./api/useApi'); const fs = require('fs'); const path = require('path'); const bodyParser = require('body-parser'); const express = require('express'); const app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); // 后端api路由 app.use('/api/user', userApi); // 监听端口 app.listen(3000); console.log('success listen at port:3000......');
-
sqlMap.js—SQL语句映射文件,以供api逻辑调用
// sql语句 var sqlMap = { // 用户 user: { add: 'insert into user(id, username, password) values (0, ?, ?)', search: 'select password from user where username=?' } } module.exports = sqlMap;
-
api/userApi.js — api示例
var models = require('../db'); var express = require('express'); var router = express.Router(); var mysql = require('mysql'); var $sql = require('../sqlMap'); // 连接数据库 var conn = mysql.createConnection(models.mysql); conn.connect(); var jsonWrite = function(res, ret) { if(typeof ret === 'undefined') { res.json({ code: '1', msg: '操作失败' }); } else { res.json(ret); } }; // 增加用户接口 router.post('/addUser', (req, res) => { var sql = $sql.user.add; var params = req.body; console.log(params); conn.query(sql, [params.username, params.password], function(err, result) { if (err) { console.log(err); } if (result) { jsonWrite(res, result); } }) }); // 查询用户接口 router.post('/searchUser', (req, res) => { var sql = $sql.user.search; var params = req.body; console.log(params); conn.query(sql, [params.username], function(err, result) { if (err) { console.log(err); } if (result) { jsonWrite(res, result); } }) }); module.exports = router;
-
server.js — server
var http = require('http'); var mysql = require('mysql'); var TEST_DATABASE = 'test'; var TEST_TABLE = 'test'; var connection = mysql.createConnection({ host : 'localhost', port : 3306, user : 'root', password : '', }); // 创建数据库 // connection.query('CREATE DATABASE '+TEST_DATABASE, function(err) { // if (err && err.number != mysql.ERROR_DB_CREATE_EXISTS) { // throw err; // } // }); // 不指定回调函数,如果出错,则体现为客户端错误 // connection.query('USE '+TEST_DATABASE); // 创建表格,插入数据 // connection.query( // 'CREATE TABLE '+TEST_TABLE+ // '(id INT(11) AUTO_INCREMENT, '+ // 'name VARCHAR(255), '+ // 'PRIMARY KEY (id))' // ); // connection.query( // 'INSERT INTO '+TEST_TABLE+' '+ // 'SET name = ?', // ['nodejs1'] // ); // var query = connection.query( // 'INSERT INTO '+TEST_TABLE+' '+ // 'SET name = ?', // ['nodejs2'] // ); // 查询,并设置回调函数 // connection.query( // 'SELECT * FROM '+TEST_TABLE, // function selectCb(err, results, fields) { // if (err) { // throw err; // } // console.log(results); // console.log(fields); // connection.end(); // } // ); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/html'}); response.end('<b>Hello World</b>'); }).listen(8888); console.log('Server running at http://127.0.0.1:8888/');
编写完成之后,就可以在项目根目录下安装依赖npm install express mysql body-parser
;
此时在server文件夹下执行node index
(这里也可以加载package.json中,然后使用npm执行)看到success listen at port:3000……即服务端启动成功。
设置代理
// onfig文件proxyTable参数
dev: {
// ...
proxyTable: {
'/api': {
target: 'http://127.0.0.1:3000/api/',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
},
// ...
}
参考: