我们如何使用 node.js 获取 JSON 格式的响应数据

How do we get response data in JSON format using node.js

我正在尝试从模型(数据库)获取响应数据到控制器

这是模型

var database = require('../config/db');

exports.getAllBatch = function(done) {
database.query('SELECT batchName from batch', function (err, rows) {
    if (err) return console.log(err);
    else {
        console.log(null, rows);

        return rows;
    }
})
};

这里是控制器

从模型访问数据的代码。

var express = require('express');
var router = express.Router();
var batch=require('../models/BatchModel');
var myParser = require("body-parser");
var app = express();

router.get('/getbatch', function(req, res, next)
{
var resp=batch.getAllBatch();
    res.send(resp);
    //not displaying anything on browser
});
});

我如何在浏览器上得到响应,请提前指导me.Thank你。

这是很好的代码,唯一缺少的是设置您需要的正文解析器

app.use(myParser.json())

您的函数正在使用回调模式,但您没有调用或检查回调。

型号

var database = require('../config/db');

exports.getAllBatch = function(done) {
  database.query('SELECT batchName from batch', function (err, rows) {
    if (err) {
      console.log('Err', err);
      return done(err);
    }
    else {
      console.log('Rows', rows);
      return done(null, rows);
    }
  });
};

控制器

var express = require('express');
var router = express.Router();
var batch=require('../models/BatchModel');
var myParser = require("body-parser");
var app = express();

router.get('/getbatch', function(req, res, next) {
  batch.getAllBatch(function(err, rows) {
    if (err) {
      res.status(500).send(err);
    } else {
      res.send(rows);
    }
  });
});