簡體   English   中英

Node.js腳本未運行

[英]Node.js script is not running

問題陳述:運行node.js時出現錯誤

錯誤:大多數中間件(如bodyParser)不再與Express捆綁在一起,必須單獨安裝。 請參閱https://github.com/

預期結果:頁面應該顯示,並且用戶可以將數據插入數據庫。

這是我的代碼:

filter.js

var express = require('express'),
http = require('http'),
fs = require('fs'),
bodyParser = require('body-parser'),

io = require('socket.io'),
filter = express();

mongoose = require('mongoose');

//all environments
filter.set('port', process.env.PORT || 3000);
filter.set('views', __dirname + '/views');
filter.set('view engine', 'jade');

filter.use(express.bodyParser());
filter.use(express.methodOverride());
//filter.use(filter.router);
filter.use(express.static(path.join(__dirname,'public')));

mongoose.connect('mongodb://localhost/Company');

var Schema = new mongoose.Schema({
_emailid: String,
name: String,
age: Number
});

var user = mongoose.model('emp', Schema);

filter.get('/view',  function(req, res){
user.find({}, function(err, docs){
    if(err) res.json(err);

})
});
filter.post('/new', function(res, req){
new user({
    _emailid:req.body.email,
    name:req.body.name,
    age:req.body.age,
}).save(function(err, doc){
    if(err) res.json(err);
    else res.redirect('/view');
});
});

var server = http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port' + app.get('port'));
});

這是我的HTML代碼:

<html>
<head>
<title>Please enter your details</title>
</head>
<body>
<h3>Please enter your details</h3>
<p>Please register below!!!</p>

<form action="/new" method="POST">

<label for="email">Email: </label>
    <input type="email" name="email" /><br>
<label for="name">Name: </label>
    <input type="text" name="name" /><br>
<label for="age">Age: </label>
    <input type="number" name="age" /><t>
    <input type="number" name="age" /><br>

<input type="submit" />
</form>
</body>

</html>

express 4.x有很多更改。 就像錯誤所說的一樣,所有中間件都已被刪除。

更新您的package.json以包括“新”軟件包,可以在此處找到基本列表以及完整列表https://github.com/expressjs

基本上你需要編輯

filter.use(express.bodyParser());

並替換為

filter.use(bodyParser());

您還必須為methodOverride中間件執行此操作。

確保已安裝所有模塊。

希望這對您有幫助,

var express = require('express'),
http = require('http'),
fs = require('fs'),
bodyParser = require('body-parser'),
methodOverride=require('method-override'),
io = require('socket.io'),
filter = express();

mongoose = require('mongoose');

//all environments
filter.set('port', process.env.PORT || 3000);
filter.set('views', __dirname + '/views');
filter.set('view engine', 'jade');

filter.use(bodyParser());
filter.use(methodOverride());
//filter.use(filter.router);
filter.use(express.static(path.join(__dirname,'public')));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM