我在前端使用 node.js、sqlite3(带有 anyDB)和 javascript。
我做了一张桌子:
conn.query('CREATE TABLE messages (id INTEGER PRIMARY KEY AUTOINCREMENT, room TEXT, nickname TEXT, body TEXT, time INTEGER)').on('end', function(){
console.log('Made table!');
});
我在表格中插入了一些东西:
conn.query('INSERT INTO messages VALUES ($1, $2, $3, $4, $5)', [null, request.params.roomName, request.body.nickname, request.body.message, null]).on('error', console.error);
在客户端js中,我写了这段代码:
window.addEventListener('load', function(){
var intervalID = setInterval(updateMessages, 4000);
}, false);
function updateMessages() {
var req = new XMLHttpRequest();
req.open('GET', '/' + roomName + '/messages.json', true);
req.send();
//GET ACCESS TO RESPONSE IN ORDER TO ADD IT TO THE PAGE
}
在服务器端,我写了这段代码:
app.get('/:roomName/messages.json', function(request, response){
var roomName = request.params.roomName;
var messages = conn.query("SELECT ALL body FROM messages where room="+roomName+";");
response.send(messages);
});
我的 SQL 语句看起来正确吗?如果房间还没有在数据库中,我该如何编写 select 语句,以便它不会使服务器崩溃?
最后,我如何打包我的响应并将其发送回公共 js 文件,然后发送到页面?