如何解决NodeJS,渲染带有附加数据的 EJS 文件,处理的数据返回未定义
我向 NodeJS 中的 post 端点发送了一个 html 表单对象,以便我可以使用为消息提供的“收件人”呈现 EJS。当我 console.log 它时,我可以看到该对象在它进入端点时似乎正在打印我想要的东西,但是在使用 index.ejs 文件中的数据后,当我 console.log 时问题就开始了。我不确定我做错了什么。我按时间顺序提供了必要的代码。
相关的 server.js:
app.post('/',(req,res) => {
console.log(req.body);
const {user} = req.body;
console.log(user);
console.log({recipient: user});
res.render('index',{recipient: user});
});
服务器端的console.logs:
{ user: 'shanz' }
shanz
{ recipient: 'shanz' }
相关index.ejs:
<div id="recipient"><%= recipient %></div>
相关的script.js:
const socket = io('https://goldengates.club:3001');
const messageContainer = document.getElementById('message-container');
const messageForm = document.getElementById('send-container');
const messageInput = document.getElementById('message-input');
const recipient = document.getElementById('recipient');
const name = prompt('What is your name?');
console.log(recipient);
...
messageForm.addEventListener('submit',e => {
e.preventDefault();
const message = {mes:messageInput.value,runame:recipient.value,suname:name}; //runame needs to be a name inputted change FRONT END and get element by ID for runame
console.log(recipient.value + "lol");
const mes = message.mes;
appendMessage(`You: ${mes}`);
socket.emit('dm',message);
console.log('dm emitted');
messageInput.value = '';
});
客户端的console.logs:
<div id="recipient">shanz</div>
undefinedlol
dm emitted
返回 server.js 获取 dm 代码上的服务器套接字:
socket.on('dm',(message) => {
var runame = message.runame;
var suname = message.suname;
var msg = message.mes;
console.log(runame + ':' + msg);
socket.to(users[runame]).emit("fdm",{name:suname,message:msg});
console.log('fdm ran server sided');
});
服务器端的console.logs:
undefined:messageSuccessful
任何帮助/建议/澄清对我来说都意义重大。这是给学校的,我渴望成为一名优秀的网络开发人员,任何类型的指针都受到赞赏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。