Node.js NodeJS-SQLite3

Node.js NodeJS-SQLite3,node.js,asynchronous,sqlite,Node.js,Asynchronous,Sqlite,我喜欢在可能的情况下拆分我的代码,而在一条路径中使用SQL会让我感到畏缩 Node JS对我来说是新的,我现在正在学习它,但我有以下问题(页面只是挂起,不提供任何服务) 以我目前的知识水平,这对我来说是有意义的,但我想会有更好的方法来做到这一点 感谢您抽出时间阅读本文,非常感谢您的帮助 路线 var express = require('express'); var router = express.Router(); var db = require('../lib/

我喜欢在可能的情况下拆分我的代码,而在一条路径中使用SQL会让我感到畏缩

Node JS对我来说是新的,我现在正在学习它,但我有以下问题(页面只是挂起,不提供任何服务)

以我目前的知识水平,这对我来说是有意义的,但我想会有更好的方法来做到这一点

感谢您抽出时间阅读本文,非常感谢您的帮助


路线

var express   = require('express');
var router    = express.Router();
var db        = require('../lib/db.js');

var model     = require('../models/contacts.js');

/* GET contacts. */
router.get('/', function(req, res) {

  // Get data from model - RETURN THE ROWSET HERE
  model.get_names(db, function(rowset) {

    res.render('contacts', { 
      title: 'Contacts | Rhubarb',
      nav_active: "contacts",
    }, function(err, output) {
      res.status(200).send(rowset);  
    }); // res.render

  }); // model.get_names

}); // router

module.exports = router;
型号

module.exports.get_names = function(db) {

  var sql = " SELECT attr_name " +
            "      , attr_value " +  
            "   FROM contacts  a " +
            "      , contact_attributes b " +
            "  WHERE a.contact_id = b.contact_id " +
            "    AND (attr_name = 'forename' OR attr_name = 'surname')";


   db.all(sql, function(err, rowset) {

     if (err) throw err;
     return rowset;

   }); // db.all

}  // get_names

通过向函数添加实际回调对其进行排序。。。叹息

module.exports.get_names = function(db, callback) {

  var sql = " SELECT attr_name " +
            "      , attr_value " +  
            "   FROM contacts  a " +
            "      , contact_attributes b " +
            "  WHERE a.contact_id = b.contact_id " +
            "    AND (attr_name = 'forename' OR attr_name = 'surname')";


  return db.all(sql, function(err, rowset) {
    if (err) throw err;

    return callback(rowset);

  });

}