Nodejs:使用add.post时无法获取路由

时间:2017-06-07 23:01:11

标签: node.js express

我是Node的初学者,我正在尝试用Mongo(mlab),express和nodejs创建一个多页面应用程序。我正在尝试导航到需要addUser个请求的网页POST。但我一直收到错误

  

无法GET / addUser

当我使用add.post时。但是,当我使用add.get

时,它确实有效

以下是app.js

var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var cors = require('cors');
var path = require('path');
const MongoClient = require('mongodb').MongoClient;

var app = express();
app.set('view engine', 'ejs')
const port = 3000;

MongoClient.connect('mongodb://<user>:<password>@ds111882.mlab.com:11882/serene-brushlands-55292-db', function(err, database) {
    if(err) return console.log(err);
    db = database
    app.listen(port, function() {
    console.log('Server started at port:'+port);
    });
});

var urlencodedParser = bodyParser.urlencoded({ extended:false });

app.get('/', function(req, res) {
    res.sendFile(__dirname+'/index.html');
});

app.post('/addUser', urlencodedParser, function(req, res) {
    res.render('addUser');
    // db.collection('users').save(req.body, function(err, result) {
    //  if (err) return console.log(err);
    //  console.log('saved to database');
    //  res.redirect('/');
    // })
    // console.log(req.body);
});

不确定我做错了什么。

以下是addUser.ejs

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>MY APP</title>
</head>
<body>
    <form action="/addUser" method="POST" >
    <input type="text" placeholder="username" name="username">
    <input type="text" placeholder="specialty" name="specialty">
    <input type="text" placeholder="address" name="address">
    <!-- <input type="file" name="picture"> -->
    <button type="submit">Submit</button>
    </form>
</body>

1 个答案:

答案 0 :(得分:2)

您需要为addUser添加get:

app.get('/addUser', function(req, res) {
    res.render('addUser');
});