84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
最近在学node.js,但是不知道怎么连接数据库。没有文档可以看,求推荐。怎么用node连接mysql mongoDB redis solite?求解答
ringa_lee
var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'me', password : 'secret', database : 'my_db' }); connection.connect(); connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) { if (err) throw err; console.log('The solution is: ', rows[0].solution); }); connection.end();
https://github.com/mysqljs/my...
var mongoose = require( 'mongoose' ) // Build the connection string var dbURI = 'mongodb://127.0.0.1/my_db' // Create the database connection mongoose.connect(dbURI); mongoose.connection.on('connected', function () { console.log('Mongoose connected to ' + dbURI); }) mongoose.connection.on('error',function (err) { console.log('Mongoose connection error: ' + err) }) mongoose.connection.on('disconnected', function () { console.log('Mongoose disconnected') }) process.on('SIGINT', function() { mongoose.connection.close(function () { console.log('Mongoose disconnected through app termination') process.exit(0) }) })
以上是通过mongoose连接mongodb的代码,保存为(db.js),在主程序(假设是app.js)中引入
var express = require('express'); var db = require('./model/db') var app = express(); //引入一个单独的router app.use('/account', require('./routes/account'))
即可在其他地方(假设是上面引入的一个单独的router account.js)使用mongoose
var express = require('express') var mongoose = require('mongoose') require('../model/user') let UserModel = mongoose.model("User")
数据的model需要单独建立,比如我们建立一个model/user.js文件,以供上面的router引入使用
var mongoose = require('mongoose') var Schema = mongoose.Schema var userSchema = new Schema({ email:{type:String, index:true, unique:true}, unm:{type:String,index:true, unique:true}, password:String, role:{type:String, enum: ["student","controller","gm"], index:true}, lang:[String], regTime:Number, year:String, month:String, day:String, }) mongoose.model('User',userSchema)
-----分割线--------------------------------------
redis可以用于session缓存,(当然也可以用于暂存数据),用做缓存的话类似以下写法,当然我这里为了省事用的是mongodb临时充当缓存数据库
var MongoStore = require('connect-mongo')(session) app.use(session({ secret: ['secret1', 'secret2'], saveUninitialized: false, // don't create session until something stored resave: false, //don't save session if unmodified store: new MongoStore({ url: 'mongodb://localhost/my_db', touchAfter: 24 * 3600, // time period in seconds ttl: 7 * 24 * 60 * 60 //session过期时间为7天,过期后使用cookies登陆 }) }))
mysql连接可以使用库 mysqljs/mysql npm install mysqljs/mysqlmongo连接可以使用库 mongoose npm install mongooseredis连接可以使用库 redis npm install redissqlite连接可以使用库 sqlite3 npm install sqlite3
npm install mysqljs/mysql
npm install mongoose
npm install redis
npm install sqlite3
各个库接口各不相同,请参考官方文档mysql readmemongoose guideredis readmesqlite3 readme
针对你这种的要不来几个ORM试试??
Sequelize
Waterline
BOOKSHELF.JS
node-orm2
。。。。
根据你的需求,你需要连接的数据库类型,是不是需要事务支持之类的,选择合适的吧! 使用orm对你底层数据库类型的切换会友好点。
https://github.com/mysqljs/my...
以上是通过mongoose连接mongodb的代码,保存为(db.js),在主程序(假设是app.js)中引入
即可在其他地方(假设是上面引入的一个单独的router account.js)使用mongoose
数据的model需要单独建立,比如我们建立一个model/user.js文件,以供上面的router引入使用
-----分割线--------------------------------------
redis可以用于session缓存,(当然也可以用于暂存数据),用做缓存的话类似以下写法,当然我这里为了省事用的是mongodb临时充当缓存数据库
mysql连接可以使用库 mysqljs/mysql
npm install mysqljs/mysql
mongo连接可以使用库 mongoose
npm install mongoose
redis连接可以使用库 redis
npm install redis
sqlite连接可以使用库 sqlite3
npm install sqlite3
各个库接口各不相同,请参考官方文档
mysql readme
mongoose guide
redis readme
sqlite3 readme
针对你这种的要不来几个ORM试试??
Sequelize
Waterline
BOOKSHELF.JS
node-orm2
。。。。
根据你的需求,你需要连接的数据库类型,是不是需要事务支持之类的,选择合适的吧! 使用orm对你底层数据库类型的切换会友好点。