RethinkDB, ReferenceError: connection is not defined
RethinkDB, ReferenceError: connection is not defined
我正在使用 Express.js
和 Rethink
并且我正在尝试对一条路由进行简单的 post
操作,将一些信息保存到 database.The 初始连接工作正常并记录到控制台 Connected to Rethink
但是,当我尝试使用与 insert
的连接时,我一直收到 ReferenceError: connection is not defined
。这是代码:
var express = require('express');
var app = express();
var r = require('rethinkdb');
var bodyParser = require('body-parser');
var session = require('express-session');
var bcrypt = require('bcryptjs');
function dbConnect(){
var connection = null;
r.connect({host: 'localhost', port: 28015}, function(err, conn){
if (err){
throw err;
}else{
connection = conn;
console.log("Connected to Rethink");
}
});
}
dbConnect();
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.use(session({secret: 'gitTy Up!',resave: false,saveUninitialized:true}));
app.use(require('connect-flash')());
app.set('view engine','ejs');
//Home Page
app.get('/', function (req, res) {
res.render('home');
})
app.get('/join', function (req, res) {
res.render('join');
})
app.post('/join',function(req, res){
var salt = bcrypt.genSaltSync(10);
r.table('users').insert([{email: req.body.email, password: bcrypt.hashSync(req.body.password, salt)}])
.run(connection, function(err,result) {
if (err) throw err;
console.log(JSON.stringify(result, null, 2));
})
});
app.listen(3000);
这是范围问题。 Connection 在范围内是本地的,您正在尝试访问它,就好像它是全局的一样。变化:
var express = require('express');
var app = express();
var r = require('rethinkdb');
var bodyParser = require('body-parser');
var session = require('express-session');
var bcrypt = require('bcryptjs');
function dbConnect(){
var connection = null;
r.connect({host: 'localhost', port: 28015}, function(err, conn){
if (err){
throw err;
}else{
connection = conn;
console.log("Connected to Rethink");
}
});
}`
至
var express = require('express');
var app = express();
var r = require('rethinkdb');
var bodyParser = require('body-parser');
var session = require('express-session');
var bcrypt = require('bcryptjs');
var connection = null;
function dbConnect(){
r.connect({host: 'localhost', port: 28015}, function(err, conn){
if (err){
throw err;
}else{
connection = conn;
console.log("Connected to Rethink");
}
});
}
我正在使用 Express.js
和 Rethink
并且我正在尝试对一条路由进行简单的 post
操作,将一些信息保存到 database.The 初始连接工作正常并记录到控制台 Connected to Rethink
但是,当我尝试使用与 insert
的连接时,我一直收到 ReferenceError: connection is not defined
。这是代码:
var express = require('express');
var app = express();
var r = require('rethinkdb');
var bodyParser = require('body-parser');
var session = require('express-session');
var bcrypt = require('bcryptjs');
function dbConnect(){
var connection = null;
r.connect({host: 'localhost', port: 28015}, function(err, conn){
if (err){
throw err;
}else{
connection = conn;
console.log("Connected to Rethink");
}
});
}
dbConnect();
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.use(session({secret: 'gitTy Up!',resave: false,saveUninitialized:true}));
app.use(require('connect-flash')());
app.set('view engine','ejs');
//Home Page
app.get('/', function (req, res) {
res.render('home');
})
app.get('/join', function (req, res) {
res.render('join');
})
app.post('/join',function(req, res){
var salt = bcrypt.genSaltSync(10);
r.table('users').insert([{email: req.body.email, password: bcrypt.hashSync(req.body.password, salt)}])
.run(connection, function(err,result) {
if (err) throw err;
console.log(JSON.stringify(result, null, 2));
})
});
app.listen(3000);
这是范围问题。 Connection 在范围内是本地的,您正在尝试访问它,就好像它是全局的一样。变化:
var express = require('express');
var app = express();
var r = require('rethinkdb');
var bodyParser = require('body-parser');
var session = require('express-session');
var bcrypt = require('bcryptjs');
function dbConnect(){
var connection = null;
r.connect({host: 'localhost', port: 28015}, function(err, conn){
if (err){
throw err;
}else{
connection = conn;
console.log("Connected to Rethink");
}
});
}`
至
var express = require('express');
var app = express();
var r = require('rethinkdb');
var bodyParser = require('body-parser');
var session = require('express-session');
var bcrypt = require('bcryptjs');
var connection = null;
function dbConnect(){
r.connect({host: 'localhost', port: 28015}, function(err, conn){
if (err){
throw err;
}else{
connection = conn;
console.log("Connected to Rethink");
}
});
}