如何使用sqlite根据节点js上的id显示输出(HTML)

时间:2017-01-19 03:32:31

标签: javascript html node.js sqlite

这是我在Node JS上的代码。您能举例说明我将在HTML代码中添加的内容。谢谢



exports.get = function(req, res){
  db.all("SELECT * FROM f11", function(err,rows){
	  rows.forEach(function (row) {
          console.log('row: ' + row.GIVENNAME);
        });
  //  console.log(rows);
    res.render('form11.ejs',{array:rows});
  });
  
};




2 个答案:

答案 0 :(得分:0)

如果你想获得一个id和查询,那么:

首先,您需要在请求查询中传递ID。像http://localhost/api/getUser?id=23

一样
exports.getUser = function(req, res){
   var user_id = req.query.id;
   db.all("SELECT * FROM f11 WHERE id="+user_id, function(err,row){

     console.log(row); // Since you'll only get one row

     res.render('form11_detail.ejs',{data:row});
   });

};

如果您添加此代码,然后只显示一个您可以使用'getUser'功能并显示所有数据,您可以使用'get'功能。

答案 1 :(得分:0)

我看到你正在使用sqlite3 npm包用于sqlite。

查看代码后,您可以尝试这样做以达到您想要的效果:

get

中更改route id以获得这样的参数server.js
app.get('/legone/survey/surveyform/form11/:id', form11.get);

并且,像这样编写get函数:

exports.get = function(req,res){
    var id = req.params.id;
    db.all("SELECT * FROM f11 WHERE id = ?",id, function(err,rows){
        rows.forEach(function (row) {
           console.log('row: ' + row.GIVENNAME);
        });
        res.render('form11.ejs',{array:rows});
    });
};

您的route将是这样的:

http://localhost/legone/survey/surveyform/form11/23

其中23是id。把你想要的东西放在它的位置。

如果您使用ajax来电,它将如下所示:

$http.get('/legone/survey/surveyform/form11/23')
    .success(function(response){
        //handle response
    })
    .error(function(error){
        //handle error
    });

您可以通过POSTMAN或类似的方式测试路线。

有关详细信息,您可以阅读Sqlite3 Wiki API Documentation或直接了解参数和回调here

此外,在查看您的代码后,您需要进行大量重组。您应该在一个文件中定义所有路由,然后在app.js中使用它。

这样的事情:

//define all the routes that start from '/legone/survey/surveyform' in one file
//(let it be 'surveryRoutes.js') 
//and then include it in your app.js.
var surveyRoutes = require(./routes/surveyRoutes);
app.use('/legone/survey/surveyform',surveyRoutes);