我需要创建一个Web服务,并且正在服务器中使用Node.js。但是当我在本地主机上运行时,出现错误:
错误:大多数中间件(如bodyParser)不再与Express捆绑在一起,必须单独安装。请参阅https://github.com/senchalabs/connect#middleware。
neo4jtest.js
var config = require('./config'); var bodyParser = require('body-parser'); var app = express(); var neo4jurl = process.env.NEO4J_URL ; neo4jurl = neo4jurl +'/db/data/'; var query = [ 'START me=node:node_auto_index(name={inputusername}) MATCH me<--friend<--friend_of_friend where (friend_of_friend.entitytype={inputentitytype}) RETURN friend_of_friend;' ]; var insertquery = [ 'CREATE (user {entitytype:{inputentitytype}, name : {inputname}}) return user;' ]; var queryforallrelation = [ 'start n = node:node_auto_index(name={inputusername}) match(n)--(x) return x;']; // Config var env = process.env.NODE_ENV || 'development'; if ('development' == env) { // configure stuff here app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(application_root, "public"))); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); } app.get('/api', function (req, res) { res.send('REST API is running'); }); app.get('/friendoffriend/:username', function (req, res){ res.set({'Content-Type': 'text/json'}); username = req.params.username; type = 'user'; neo4j.connect(neo4jurl, function (err, graph) { graph.query(query.join('\n'), {inputusername : username, inputentitytype :type} ,function (err, results) { if (err) { res.send(HTTPStatus.INTERNAL_SERVER_ERROR,'Internal Server Error'); } else { res.send(HTTPStatus.OK,JSON.stringify(results)); } }); }); }); app.get('/insertuser/:username', function (req, res){ res.set({'Content-Type': 'text/json'}); username = req.params.username; type = 'user'; neo4j.connect(neo4jurl, function (err, graph) { graph.query(insertquery.join('\n'), {inputname : username, inputentitytype :type} ,function (err, results) { if (err) { res.send(HTTPStatus.INTERNAL_SERVER_ERROR,'Internal Server Error'); } else { res.send(HTTPStatus.OK,JSON.stringify(results)); } }); }); }); //Cypher Query with Javascript Callback Example function neo4jQuery(neo4jurl, query, parameters, giveresults) { neo4j.connect(neo4jurl, function (err, graph) { graph.query(query.join('\n'), {inputusername : 'andrew'} ,function (err, results) { if (err) { giveresults(HTTPStatus.INTERNAL_SERVER_ERROR); } else { giveresults(JSON.stringify(results)); } }); }); } app.get('/allrelations/:username', function (req, res){ res.set({'Content-Type': 'text/json'}); username = req.params.username; parameters = {inputusername : username}; neo4jQuery(neo4jurl, queryforallrelation, parameters, function(results){ res.send(results); }); }); app.listen(1212);
以下是我从控制台收到的错误:
C:\ node \ NodejsNeo4j1-master>节点neo4jtest.js 错误:大多数中间件(如bodyParser)不再与Express捆绑在一起,必须单独安装。请参阅https://github.com/senchalabs/connect#middleware。 在Function.Object.defineProperty.get(C:\ node \ NodejsNeo4j1-master \ node_modules \ express \ lib \ express.js:89:13) 在Object。<anonymous>(C:\ node \ NodejsNeo4j1-master \ neo4jtest.js:26:18) 在Module._compile(module.js:456:26) 在Object.Module._extensions..js(module.js:474:10) 在Module.load(module.js:356:32) 在Function.Module._load(module.js:312:12) 在Function.Module.runMain(module.js:497:10) 在启动时(node.js:119:16) 在node.js:906:3
您需要替换旧的捆绑中间件使用(express.bodyParser,express.methodOverride,express.errorHandler)与外部/独立的中间件。错误中的链接为您提供了这些新中间件的名称。您可能需要查看这些中间件的文档,以检查自Express 3以来的所有API更改。
express.bodyParser
express.methodOverride
express.errorHandler