Прекратить показывать результат JSON после respone.send в NodeJS - PullRequest
0 голосов
/ 06 июня 2018

У меня есть respone.send в приложении nodejs:

this.app.post('/profile', (req, res) => {                        
            let password = req.body.password;            
            let newWallet = operator.createWalletFromPassword(password);
            let projectedWallet = projectWallet(newWallet);
            return res.send(projectedWallet);          
});

И каждый раз, когда я нажимаю кнопку в html, она всегда делает мой пост и возвращает результат JSON на html странице.

{"id":"f4c02f2463c8f83218f324d4193e08b8812fe914e24063217d29e65966abbe85","addresses":[]}

Но я не хочу его видеть, так как я могу скрыть или перенаправить на другую страницу (например, «/ профиль», которую я установил ранее)?

РЕДАКТИРОВАТЬ: Этомой код на стороне клиента

<form action="/profile" method="post">
                        <p>
                            <% var ten = user.username %>
                            <strong>id</strong>: <%= user.id %><br>
                            <strong>username</strong>: <%= ten %><br>
                            <strong>password</strong>: <%= user.password %>
                        </p>
                        <p id="passwd" name="passwd" ><%= user.username %></p>
                        <textarea id="myTextArea" cols=50 rows=10></textarea>
                        <!-- these fields will be sent to server -->
                        <input type="hidden" name="username" value="<%= user.username %>">
                        <input type="hidden" name="password" value="<%= user.password %>">

                        <button type="submit" class="btn btn-warning btn-lg" onclick="/profile">Wallet</button>
                    </form>

1 Ответ

0 голосов
/ 06 июня 2018

Проблема в том, что вы выполняете POST из браузера в узел.Результаты этого POST будут отображаться браузером.

Если вы не хотите видеть данные JSON, измените:

return res.send(projectedWallet);          

на что-то вроде:

res.redirect('new url');

или:

res.render('some page');

или:

res.send('I hate json! ;)');

Если вы действительно хотите JSON, я предлагаю изменить его с:

return res.send(projectedWallet);

на:

res.json(projectedWallet);

, поскольку при этом устанавливаются все правильные заголовки и правильно выводится формат JSON.

UPDATE

Если вы хотите создать форму, котораяопубликует ваши значения и затем поместит JSON в текстовую область, как вы описываете в своем комментарии к этому ответу, тогда вам нужно использовать клиентский java-скрипт и AJAX-вызов.

См. https://stackoverflow.com/a/46642899/1253074 для более подробной информации.

...