express无法接收到angular4中http.post过来的参数

发布于 2022-09-06 04:10:11 字数 1814 浏览 23 评论 0

express无法接收到angular4中http.post过来的参数,试了好多方法都不管用,req中始终拿不到参数。代码如下:

var express = require('express');
var request = require('request');
var bodyParser = require('body-parser');
var multer = require('multer');
var upload = multer({ dest: 'uploads/' })
var app = express();

app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-

app.get('/', (request, response) => response.send('这里是首页'));

app.post('/api/login', (req, resq) => {
    console.log(req)
    var userName = "";
    var password= "";
    request('http://localhost:8080/login?code='+userName+"&password=1", {form:{'code': userName, 'password':password}}, function (error, response, body) {
        console.log(body)
        resq.send(body);
        resq.end();
    });

});

app.get("*", (request, response) => response.end("404!"));

const server = app.listen(3000, 'localhost', () => {
    var host = server.address().address;
    var port = server.address().port;

    console.log('Example app listening at http://%s:%s', host, port);
});

angular的代码如下:

login(info: any) {

    var headers = new HttpHeaders();
    headers.append('Content-Type', 'application/x-www-form-urlencoded');
    
    let params = new HttpParams();
    params.set('userName', info.userName)
    params.set('password', info.password)

    this.httpClient.post('http://localhost:3000/api/login',params).subscribe(
      (val) => {
        console.log("POST call successful value returned in body",
          val);
      },
      response => {
        console.log("POST call in error", response);
      },
      () => {
        console.log("The POST observable is now completed.");
      });
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妞丶爷亲个 2022-09-13 04:10:11

你的http的方法使用错了,那个方法是

post(url: string, body: any, options?: RequestOptionsArgs): Observable<Response>;

你可以这么写,reques是一个Object:

  public login(requestUrl, request) {
        const body: string = JSON.stringify(request);
        const header: any = new Headers({'Content-Type': 'application/json'});
        const options: any = new RequestOptions({headers: header});
        this.http.post(url, body, options).subscribe(
        success=>{
            console.log(success);
        },
        fail=>{
            console.log(fail);
        );
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文