相关疑难解决方法(0)

如何检索POST查询参数?

这是我的简单形式:

<form id="loginformA" action="userlogin" method="post">
    <div>
        <label for="email">Email: </label>
        <input type="text" id="email" name="email"></input>
    </div>
<input type="submit" value="Submit"></input>
</form>
Run Code Online (Sandbox Code Playgroud)

这是我的Express.js /Node.js代码:

app.post('/userlogin', function(sReq, sRes){    
    var email = sReq.query.email.;   
}
Run Code Online (Sandbox Code Playgroud)

我试过sReq.query.emailsReq.query['email']sReq.params['email']等他们都没有工作.他们都回来了undefined.

当我改为Get电话时,它有效,所以..任何想法?

javascript post node.js express

746
推荐指数
16
解决办法
71万
查看次数

使用node或Express返回JSON的正确方法

因此,可以尝试获取以下JSON对象:

$ curl -i -X GET http://echo.jsontest.com/key/value/anotherKey/anotherValue
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=ISO-8859-1
Date: Wed, 30 Oct 2013 22:19:10 GMT
Server: Google Frontend
Cache-Control: private
Alternate-Protocol: 80:quic,80:quic
Transfer-Encoding: chunked

{
   "anotherKey": "anotherValue",
   "key": "value"
}
$
Run Code Online (Sandbox Code Playgroud)

有没有办法在使用node或express的服务器的响应中生成完全相同的主体?显然,可以设置标头并指示响应的内容类型将是"application/json",但是有不同的方式来编写/发送对象.我经常使用的那个是使用以下形式的命令:

response.write(JSON.stringify(anObject));
Run Code Online (Sandbox Code Playgroud)

然而,这有两点可以说是好像是"问题":

  • 我们正在发送一个字符串.
  • 而且,最终没有新的线条特征.

另一个想法是使用命令:

response.send(anObject);
Run Code Online (Sandbox Code Playgroud)

这似乎是基于curl的输出发送一个JSON对象,类似于上面的第一个例子.但是,当在终端上再次使用卷曲时,在身体的末端没有新的线条字符.那么,如何使用node或node/express在最后附加一个新行字符来实际记下这样的内容?

json httpresponse node.js express

405
推荐指数
9
解决办法
64万
查看次数

express.json vs bodyParser.json

我正在写一个相对较新的应用程序,并想知道我应该使用哪个:

express.json()

要么

bodyParser.json()

我可以假设他们做同样的事情.

我想使用express.json()已经内置的内容.

json express

63
推荐指数
4
解决办法
3万
查看次数

node.js,express,如何在post请求中从body form-data中获取数据

我有一个简单的 node.js 应用程序。我想从用户那里获取帖子正文。

应用程序.js

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

app.use(express.json());

app.post('/api/user', function (req, res) {
    console.log(req.body);
    console.log(req.body.username);
});

module.exports = app;
Run Code Online (Sandbox Code Playgroud)

服务器.js

var app = require('./app.js');

var server = app.listen(3000, function () {

    var port = server.address().port;

    console.log('Web App Hosted at http://localhost:%s',port);

});
Run Code Online (Sandbox Code Playgroud)

当我用 启动它时node server.js,它很好。当我与邮递员核对时, 在此处输入图片说明

在控制台中,它返回

Web App Hosted at http://localhost:3000
{}
undefined
Run Code Online (Sandbox Code Playgroud)

我有最新的快递。

我也尝试过其他的事情,比如 add body-parser,add header to content-type, add express.urlencoded(),但没有工作。我需要从form-data上面图片中的邮递员那里获取数据。我怎样才能得到它?

javascript node.js express

12
推荐指数
1
解决办法
2万
查看次数

接受从其他网站到 Angular 应用程序的 POST 请求

我想接受其他应用程序对我的 Angular 应用程序的发布请求。

基本上,他们会将客户 ID 列表作为 POST 有效负载发送,我必须在我的角度应用程序和渲染 GUI 中处理它。

我尝试在 app.js 中执行以下 app.post 方法,但它抛出错误“无法执行 POST”

app.post('/customer', function (req, res) {
    console.log(req.body);
});
Run Code Online (Sandbox Code Playgroud)

这是一个有点尴尬的要求,因为 Angular 是 JavaScript 框架,它不接受 post 请求,因为 post 请求只需要在服务器端处理,而不是在客户端处理。

但是有没有什么解决办法,比如在 Node JS 中接受 post 请求并发送到角度应用程序并渲染 UI?可能是一个愚蠢的想法,所以至少需要一些想法或解决方法。

编辑:= 更多信息

我有 Node JS 应用程序,主要是通过 socket.io 获取实时数据。

node.js angular

7
推荐指数
1
解决办法
1万
查看次数

为什么 req.body 在 POSTMAN 中返回未定义

我用nodejs创建了一个crud Rest api,正在用postman测试该api。每当我使用邮递员中的“正文”发送请求时,req.body 都会返回 undefine。请问可能是什么原因?

rest node.js postman

4
推荐指数
1
解决办法
4173
查看次数

为什么 Express 中 req.body 未定义?

我正在创建一个 PUT 方法来更新给定的数据集,但是在我的更新函数中, req.body 未定义。

控制器.js

async function reviewExists(req, res, next) {
  const message = { error: `Review cannot be found.` };
  const { reviewId } = req.params;
  if (!reviewId) return next(message);
  let review = await ReviewsService.getReviewById(reviewId);
  if (!review) {
    return res.status(404).json(message);
  }
  res.locals.review = review;
  next();
}

async function update(req, res, next) {
  console.log(req.body);
  const knexInstance = req.app.get('db');
  const {
    review: { review_id: reviewId, ...review },
  } = res.locals;

  const updatedReview = { ...review, ...req.body.data };

  const newReview = …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express knex.js

4
推荐指数
2
解决办法
2万
查看次数

Apollo Server 2 + Express:post 处理程序中缺少 req.body

在版本 1 中可以正常工作,但整个服务器配置已更改。这就是我在按照 Daniel 在评论中的建议将 bodyparser() 添加到 Express 应用程序后所拥有的:

    const server = new ApolloServer({
    typeDefs,
    resolvers,
    playground: {
        settings: {
            'editor.theme': 'light',
        }
    },
})

// Initialize the app
const app = express();
app.use(cors())
app.use(bodyParser.json())

server.applyMiddleware({
    app
})

app.post('/calc', function(req, res){
    const {body} = req;

    console.log("HOWDYHOWDYHOWDY", body) // <== body is {}

    res.setHeader('content-type', 'application/json')

    calculate(body)
        .then(result => res.send(result))
        .catch(e => res.status(400).send({error: e.toString()}))    
})
Run Code Online (Sandbox Code Playgroud)

尽管调用了处理程序,但请求正文永远不会到达 app.post 处理程序。不过,我看到它是从浏览器中发出的。有任何想法吗?

更新: 丹尼尔有正确的答案,但我在使用的请求标头中遇到了另一个问题。一旦我解决了这个问题,邮件处理程序就会收到正文。

graphql apollo-server

3
推荐指数
1
解决办法
2883
查看次数