如何在节点js + express中发出post请求

时间:2015-11-01 14:43:41

标签: javascript node.js express

我正在尝试使用express + node.js发布帖子请求。我安装这些插件 的的package.json

{
  "name": "expressjs",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.14.1",
    "express": "^4.13.3",
    "mongodb": "^2.0.47"
  }
}

我发布了这样的帖子请求

var express = require('express');
var mongodb = require('mongodb');

var app = express();


var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies

var MongoClient = require('mongodb').MongoClient;
var db;

// Initialize connection once
MongoClient.connect("mongodb://localhost:27017/abc", function(err, database) {
    if(err) throw err;

    db = database;

    // Start the application after the database connection is ready
    app.listen(3000);
    console.log("Listening on port 3000");
});

app.post('/api/users', function(req, res) {
    console.log('---')
    var user_id = req.body.id;
    var token = req.body.token;
    var geo = req.body.geo;

    res.send(user_id + ' ' + token + ' ' + geo);
});

当我点击浏览器 http://localhost:3000/api/users 时,没有任何事情发生..

这是屏幕截图enter image description here

我也尝试使用chrome rest客户端发送帖子请求..我在屏幕截图中也喜欢这样。但是我没有收到任何控制台消息或来自服务器的响应,我做错了..

我只从控制台获取此消息 聆听端口3000

enter image description here

1 个答案:

答案 0 :(得分:0)

第一张图片显示GET请求,因为浏览器默认为GET。由于您不允许GET,因此您只是一般错误。

使用ReST客户端,您需要将标头设置为Content-Type: application/json。这应该可行。