Почему я получаю два ответа на один запрос в терминале node.js - PullRequest
0 голосов
/ 25 мая 2020

// app. js code

var express = require("express");
var app = express();
var bodyParser = require("body-parser");

app.set("view engine","ejs");
app.use(bodyParser.urlencoded({extended:true}))

app.get("/",function(req,res){
    res.render("home");
});

app.get("/friends",function(req,res){
    var friends = ["tony","miranda","pierre","lilly"]
    res.render("friends",{friends:friends});
});

app.post("/addfriend",function(req,res){
    console.log(req.body);

    res.send("You have reached the post route")
});

app.listen(3000,function(){
    console.log("Server Started!");

});

// friends.e js code

<h1>Friends</h1>

<% friends.forEach(function(friend){ %>
    <li>I Have a Friend = <%= friend %></li>
<% }) %>

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

    <input type="text" placeholder="name" name="newfriend">
    <button>Add Me</button>
</form>

В ответ я получаю:

Server Started!
{}
{ newfriend: 'ahnaf' }

просмотрите приведенный выше код, и я создал приложение express всякий раз, когда я запрашиваю один ответ, я получаю два ответа. В упомянутом здесь разделе ответов дополнительный ответ - это пустой объект. Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 25 мая 2020

Пожалуйста, проверьте этот код https://github.com/cemtorun/learning_web_dev/blob/master/Section%2026:% 20Intermediate% 20Express / friendsProject / app. js

проверьте свой код, который вы должны ввести; после каждой строчки кода. вы регистрируете запрос, где находится код для вашего кода / addfriend. Когда вы что-то публикуете на странице. Вы обновляете всю страницу. Итак, кто-то получает нового друга / добавочного друга показывает вам тело {newfriend: 'ahnaf'}

, тогда у вас есть эта строка res.send .comment this и напишите это так

вы можете напишите промежуточное ПО для перехвата данных, записанных в ответ. Убедитесь, что вы отключили app.compress ().

function logResponseBody(req, res, next) {
  var oldWrite = res.write,
      oldEnd = res.end;

  var chunks = [];

  res.write = function (chunk) {
    chunks.push(chunk);

    oldWrite.apply(res, arguments);
  };

  res.end = function (chunk) {
    if (chunk)
      chunks.push(chunk);

    var body = Buffer.concat(chunks).toString('utf8');
    console.log(req.path, body);

    oldEnd.apply(res, arguments);
  };

  next();
}

, затем используйте вот так.

app.use(logResponseBody);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...