1

我目前在我的 server.js 文件中有:

const neo4j_conn = 'bolt://' + config.neo4j.host;
const driver = neo4j.driver(neo4j_conn, neo4j.auth.basic(config.neo4j.username, config.neo4j.passphrase));
const session = driver.session();
app.set('neo4jsession', session);

require('./app/routes')(app);

在我的路线文件中,我有:

const session = app.get('neo4jsession');

考虑到每个请求我只需要一个会话,这是我连接到数据库并恢复会话的正确方法吗?您能否为此目的提出更好的设计模式/编码方法/?

4

1 回答 1

1

在您的示例中,您打开会话,它是整个服务器的会话。

您需要通过function而不是结果function

app.set('neo4jsession', driver.session);

如果我们以开箱即用的路由器为例:

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  const session = req.app.get('session')();      
  session
    .run( query )
    .then( function(result)
    {
      res.json( result );
      session.close();
    })
});

module.exports = router;
于 2016-06-21T04:42:38.437 回答