【问题标题】:How can I display the output(HTML) depending on its id on node js using sqlite如何使用 sqlite 根据节点 js 上的 id 显示输出(HTML)
【发布时间】:2017-06-03 15:31:57
【问题描述】:

这是我在 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});
  });
  
};

【问题讨论】:

  • 你想做什么?不清楚。
  • exports.get 函数的正确代码是什么,查询要准确(SELECT * FROM f11 WHERE id=???? 我不知道如何
  • 你在请求中传递了id吗?
  • 是的,我想知道查询的正确代码是什么
  • sqlite 使用的是哪个包?

标签: javascript html node.js sqlite


【解决方案1】:

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

查看你的代码后,你可以试试这个来实现你想要的:

get route 更改为在您的server.js 中有一个类似这样的参数id

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);

【讨论】:

  • 谢谢,我认为它有效。非常感谢,我该如何推荐你
【解决方案2】:

如果您想获取一个 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”函数。

【讨论】:

  • 链接不可用,真的是查询中的“+user_id”和渲染部分的“数据”吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-11
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 2019-07-19
  • 1970-01-01
相关资源
最近更新 更多