【问题标题】:Node js express res.json() return html not json节点 js 表达 res.json() 返回 html 而不是 json
【发布时间】:2016-06-17 08:57:30
【问题描述】:

我在调用 router.get() 时遇到问题,我正在使用 res.json() 返回响应 json,但它返回 html 这是我的 api.js

    var express = require('express');
var router = express.Router();
var marklogic = require("marklogic");
var conn = require('../env.js').connection;

var db = marklogic.createDatabaseClient(conn);

router.route('/akt')

    // Vraca usvojene akte
    .get(function (req, res) {
        res.json({message: 'TODO vraca usvojene akte'});
    })

    // Predlaganje akta
    .post(function (req, res) {

        db.documents.write(
        {
            uri: '/korisnik/1.xml',
            contentType: 'application/xml',
            collections: 'korisnik',
            content: '<entry-list><entry id="horror2"></entry></entry-list>'
        })

    })

    // Povlaci predlog akta
    .delete(function (req, res) {
        res.send({message: "TODO povlaci predlog akta"});
    });


router.route('/amandman/:akd_id')

    // Predlog amandmana na predlog akta
    .post(function (req, res) {
        res.send({message: 'TODO predlaganje amandmana na predlog akta'});
    })

    // Povlaci predlog amandmana
    .delete(function (req, res) {
        res.send({message: 'TODO povlaci predlog amandmana'});
    });



module.exports = router;

请有人告诉我我的错误在哪里,如果您需要更多文件,我会提供。

编辑: 我注意到当我从 server.js 中删除这行时一切正常,这是为什么呢?

app.get('*', function(req, res) {
    res.sendFile(__dirname + '/public/index.html');
});

【问题讨论】:

  • 只需使用res.json() 发送 JSON 结构

标签: node.js express


【解决方案1】:

改变这个

app.get('*', function(req, res) {
    res.sendFile(__dirname + '/public/index.html');
})

app.get('/', function(req, res) {
    res.sendFile(__dirname + '/public/index.html');
})

当使用* 正则表达式时,您匹配到index.html 的每条路由。

【讨论】:

  • 如果您更改它,那么您将不会将路由委托给客户端应用程序。这是不可能的。
猜你喜欢
  • 2022-01-01
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
相关资源
最近更新 更多