javascript - Node : How to edit database from page?

标签 javascript html node.js

我正在尝试为 Slack 制作一个机器人,处理来自办公室各地的维护请求,并使用 Nodejs 将它们存储在数据库中。

前端工作正常,机器人正确记录请求,我编写了以下代码以将数据库显示到简单的网页:

exports.serveHTML = function serveHTML() {
    var http = require('http');

    http.createServer(function (req, res) {
        var html = buildHtml(req);

        res.writeHead(200, {
            'Content-Type' : 'text/html',
            'Content-Length' : html.length,
            'Expires' : new Date().toUTCString()
        });
        res.end(html);
    }).listen(8080);

    function buildHtml(req) {
        var header = '<html><head><title>Maintenance Log</title></head><body><h1>Maintenance Log</h1><table border="1"><tr><th>Problem Description</th><th>User</th> <th>ID</th><th>Date</th><th>Status</th> </tr>';
        var body = '';

        for (var i = 0; i < problemList.length; i++) {
            body+="<tr>";
            body+="<td>" + problemList[i].description + "</td>";
            body+="<td>" + problemList[i].complainer + "</td>";
            body+="<td>" + problemList[i].id + "</td>";
            body+="<td>" + problemList[i].dateAndTime + "</td>";
            body+="<td>" + problemList[i].status + "</td>";
            body+="</tr>";
        }

        return '<!DOCTYPE html>'
         + header + '</header><body>' + body + '</body></html>';
    };
};

这只是为了显示项目,但我想在每个项目上包含一个单选按钮,以便人力资源团队可以更改项目的状态。

我不知道如何让此更改反射(reflect)在数据库上。

所以我的问题是:如何从该页面将信息传递回数据库?

最佳答案

这取决于您使用的数据库类型。如果你们使用 MongoDb,那么获取这些数据会相当容易。

我建议研究 mongoose,它可以轻松地从 MongoDb 保存和检索数据 http://mongoosejs.com/

您还可以在页面上有一个表单,以便当他们单击“提交”时,会将数据发送到您的 Node 服务器。

<form action="/submit" method="get">
    Description : <input type="text" name="description"><br>
    Status: <input type="text" name="status"><br>
    <input type="submit" value="Submit">
</form>

如果您在后端使用 Express,您可以轻松获取数据,然后将其保存到 MongoDb。

var Ticket = mongoose.model('Ticket', { status: String, description: String  });


app.post('/submit', function(req, res) {
    var ticketStatus = req.body.status;
    var ticketDescription = req.body.description; 
    var ticket= new Ticket({ status: ticketStatus , description: ticketDescription });
    ticket.save(function (err) {
        if (err) // ...
        console.log('saved');
    });
});

关于javascript - Node : How to edit database from page?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35056105/

相关文章:

javascript - Firefox 闪烁错误

javascript - jquery中如何使用map函数?

javascript - CSS3 圆 Angular 框和阴影问题

jquery - 使用 jQuery 播放 10 秒后的视频

javascript - Node EventEmitter 未给出预期结果

php - 通过 jQuery/Ajax 调用 PHP 页面

javascript - ThreeJS CSS 3D Sprite 随机化

javascript - 用户更改文本框值时的 jQuery/Javascript 函数

javascript - 自动将引用从 index.html 复制到 karma.conf.js

node.js - 如果路由未知,Express.js会忽略SyntaxError