在此先感谢您的帮助!
我正在制作节点/快递应用程序,我想使用mysql数据库.但我似乎无法连接到数据库.
我知道我应该使用node-MysqL模块(https://github.com/felixge/node-mysql),但我一定做错了.
我对此完全陌生.我是否必须创建数据库然后创建表?有没有办法在别处创建数据库,以便每次重新启动应用程序时都不会删除它?
这是我的代码.有人可以回答上面的问题并告诉我下面我做错了什么吗?谢谢!
var express = require('express'),routes = require('./routes'),user = require('./routes/user'),http = require('http'),io = require('socket.io'),path = require('path');
var app = express();
var server = http.createServer(app);
sio = io.listen(server);
app.configure(function(){
app.set('port',process.env.PORT || 3000);
app.set('views',__dirname + '/views');
app.set('view engine','jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(require('stylus').middleware(__dirname + '/public'));
app.use(express.static(path.join(__dirname,'public')));
});
app.configure('development',function(){
app.use(express.errorHandler());
});
server.listen(app.get('port'),function(){
console.log("Express server listening on port " + app.get('port'));
});
var MysqL = require('MysqL');
var connection = MysqL.createConnection({
user : 'me',password : 'secret',host : 'localhost',port : app.get('port')
});
connection.connect();
connection.query('CREATE TABLE tesTable (integer int,textfield VARCHAR(100),PRIMARY KEY(integer))',function(err,result){
if(err) {
console.log(err);
} else {
console.log("Table testTable Created");
}
});
顺便说一句,在package.json中,我列出了
"MysqL": "2.0.0-rc2"
作为依赖和做
'npm install'
最佳答案
您可以像往常一样在数据库中创建表格,并且只要您重新启动应用程序,它就会持续存在,不会被删除.如果需要,可以使用以下代码连接到数据库:
var MysqL = require('MysqL');
app.use( connection(MysqL,{
host: 'myhost',user: 'user_name',password: 'password',port: 3306,//port MysqL
database: 'database_name',multipleStatements: 'true' //false by default
},'pool'));
req.getConnection(function(err,connection) {
connection.query("SELECT * FROM `table_name`;",function (error,row){
if(!error){
//do something.....
}
else console.log("Error : "+err);
});
//do something else...
});