如何在 express 中使用 connect-orientdb 模块
how to use connect-orientdb module with express
我的目标是将带有 nodejs 和 expressjs 框架的服务器代码连接到带有 orientdb 的数据库。
首先,我想将我的会话存储在数据库中。但是我很难将我的服务器连接到数据库。
执行时出现的错误 server.js:
/Users/soroush/Desktop/nodeOrient/node_modules/connect-orientdb/lib/connect-orientdb.coffee:191
})(connect.session.Store);
^
TypeError: Cannot read property 'Store' of undefined
at module.exports (/Users/soroush/Desktop/nodeOrient/node_modules/connect-orientdb/lib/connect-orientdb.coffee:22:46)
at Object.<anonymous> (/Users/soroush/Desktop/nodeOrient/server.js:8:48)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Function.Module.runMain (module.js:575:10)
at startup (node.js:160:18)
at node.js:449:3
我的 server.js 代码是:
var express = require('express'),
cs = require("coffee-script/register"),
app = express(),
path = require('path'),
cookieParser = require('cookie-parser'),
session = require('express-session'),
config = require('./config/config.js'),
orientDBStore = require('connect-orientdb')(session),
OrientDB = require('orientjs'),
orientDBConfig = {
server : {
host: "localhost",
port:2424
},
db : {
user_name: "admin",
user_password: "admin"
},
database : "sessions",
class_name : "sessions_class"
},
server = OrientDB({
hose : "localhost",
port : "2424",
username : "root",
password : "root"
})
;
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('hogan-express'));
app.set('view engine', 'html');
app.use(express.static(path.join(__dirname,'public' )));
app.use(cookieParser());
require('./routes/route.js')(express, app);
app.use(session({
secret:"mySecret",
store: new orientDBStore(orientDBConfig)
}));
app.listen(8000, function () {
console.log("app is listening on port 8000");
})
我的主要问题是在 express 中内置会话模块时使用了 connect-orientdb,但现在会话是一个不同的模块,我遇到了这个问题。
查看 OrientDB 中的 ExpressJS 指南:Blog Tutorial with ExpressJS and OrientDB。
orientDBStore = require('orient')(session),
而不是:
orientDBStore = require('connect-orientdb')(session),
如果有人遇到这个问题,我终于找到了解决方案:
var session = require('express-session'),
OrientoStore = require('connect-oriento')(session);
app.use(session({
secret: 'SomeSecret',
store: new OrientoStore({
server: "host=localhost&port=2424&username=dev&password=dev&db=test"
})
}));
有关详细信息,此 github link 很有用。
我的目标是将带有 nodejs 和 expressjs 框架的服务器代码连接到带有 orientdb 的数据库。 首先,我想将我的会话存储在数据库中。但是我很难将我的服务器连接到数据库。
执行时出现的错误 server.js:
/Users/soroush/Desktop/nodeOrient/node_modules/connect-orientdb/lib/connect-orientdb.coffee:191
})(connect.session.Store);
^
TypeError: Cannot read property 'Store' of undefined
at module.exports (/Users/soroush/Desktop/nodeOrient/node_modules/connect-orientdb/lib/connect-orientdb.coffee:22:46)
at Object.<anonymous> (/Users/soroush/Desktop/nodeOrient/server.js:8:48)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Function.Module.runMain (module.js:575:10)
at startup (node.js:160:18)
at node.js:449:3
我的 server.js 代码是:
var express = require('express'),
cs = require("coffee-script/register"),
app = express(),
path = require('path'),
cookieParser = require('cookie-parser'),
session = require('express-session'),
config = require('./config/config.js'),
orientDBStore = require('connect-orientdb')(session),
OrientDB = require('orientjs'),
orientDBConfig = {
server : {
host: "localhost",
port:2424
},
db : {
user_name: "admin",
user_password: "admin"
},
database : "sessions",
class_name : "sessions_class"
},
server = OrientDB({
hose : "localhost",
port : "2424",
username : "root",
password : "root"
})
;
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('hogan-express'));
app.set('view engine', 'html');
app.use(express.static(path.join(__dirname,'public' )));
app.use(cookieParser());
require('./routes/route.js')(express, app);
app.use(session({
secret:"mySecret",
store: new orientDBStore(orientDBConfig)
}));
app.listen(8000, function () {
console.log("app is listening on port 8000");
})
我的主要问题是在 express 中内置会话模块时使用了 connect-orientdb,但现在会话是一个不同的模块,我遇到了这个问题。
查看 OrientDB 中的 ExpressJS 指南:Blog Tutorial with ExpressJS and OrientDB。
orientDBStore = require('orient')(session),
而不是:
orientDBStore = require('connect-orientdb')(session),
如果有人遇到这个问题,我终于找到了解决方案:
var session = require('express-session'),
OrientoStore = require('connect-oriento')(session);
app.use(session({
secret: 'SomeSecret',
store: new OrientoStore({
server: "host=localhost&port=2424&username=dev&password=dev&db=test"
})
}));
有关详细信息,此 github link 很有用。