环境搭建
1.首先需要自行安装node环境
2.然后全局安装 express
npm install -g express
3.创建express项目文件夹
express创建项目默认为jade模板引擎,若使用其他引擎,使用命令切换
express node_demo -e (选择ejs模板) // 在项目名称的后面添加 -e 那么创建出来的模板文件就是.ejs类型,语法是与html相同的
在vscode中打开我们建好的项目,目录如下:
对于ejs看着不习惯的同学可以将其改为html,如下:
然后还需要将在views新建一个index.html 与error.html 内容如下 index.html
error.html
安装依赖 npm install
启动项目 npm start
监听bin/www文件,默认端口为3000,可在www文件中更改, 打开浏览器,输入localhost:3000
这时我们就可以看到页面显示的内容是index.html 里面定义的内容了
因为每次修改都需要重新启动,比较麻烦,这里有个插件nodemon,可以自动重启
npm install nodemon
将package.json文件中的代码修改为:
"start": "nodemon ./bin/www"
连接MySQL数据库
先安装mysql
npm install mysql
2.然后封装数据库连接模块,我们在根目录下新建一个conf文件夹, 新建一个db.config.js,与db.js 内容如下:
// db.config.js // 创建mysql连接 module.exports = { host: 'localhost', // 服务器地址 user: '*****', // mysql用户名称 password: '**********', // mysql用户密码 port: '3306', // 端口 database: 'onepiece', // 数据库名称 }
// db.js var mysql = require('mysql') var dbConfig = require('./db.config') module.exports = { query: function (sql, params, callback) { //每次使用的时候需要创建链接,数据操作完成之后要关闭连接 var connection = mysql.createConnection(dbConfig) connection.connect(function (err) { if (err) { throw err } //开始数据操作 connection.query(sql, params, function (err, results, fields) { if (err) { throw err } //将查询出来的数据返回给回调函数 callback && callback( JSON.parse(JSON.stringify(results)), JSON.parse(JSON.stringify(fields)) ) //停止链接数据库,必须在查询语句后,要不然一调用这个方法,就直接停止链接,数据操作就会失败 connection.end(function (err) { if (err) { console.log('关闭数据库连接失败!') throw err } }) }) }) }, }
然后我们可以在routes 目录下的users文件中添加如下代码:
var db = require('../conf/db') router.get('/userList', (req, res, next) => { // sql查询user表 db.query('SELECT * FROM user', [], function (results, fields) { // 以json的形式返回 res.json({ results }) }) })
打开浏览器访问 http://localhost:3000/users/userList
这样一个nodejs+express连接数据库就简单的完成了
后记
安装Navicat Premium
下载地址:https://3water.com/database/703548.html
安装MySQL
下载地址:https://3water.com/softs/38849.html
到此这篇关于nodejs+express最简易的连接数据库的方法的文章就介绍到这了,更多相关node express 连接数据库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!
nodejs+express最简易的连接数据库的方法
- Author -
shine-lzx声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@