有效的 JSON 格式给出错误"<",同时解析也使用平均堆栈角度 2+ 查看引擎错误 500



平均服务器角度为2+。我有一个dataservice.js,它请求获取服务器,以从http://localhost:3000/server/routes/api/test.js这给了我一个未选择的错误500视图引擎,我的理解是角度不需要视图引擎吗?由于角度/浏览器会处理这些问题。

不知怎的,当我对api执行getter时,路由似乎不起作用。

angular路由可以使用html组件,但通过数据服务向mongodb发出get请求也不起作用。获取/测试通常返回错误500,也没有选择视图引擎。

如果它确实返回了一些东西,它会返回一条错误消息"<",而不是jsn格式

我如何确保路由对我的get和post消息有效,并且它们以json格式而不是HTML格式返回。我该如何判断它使用了正确的路由?不知何故,我怀疑收发信息的分组似乎使用了express,而不是角度模块

我对堆栈溢出/平均服务器很陌生,所以如果你需要更多信息,请告诉我。

FYI我已经能够通过get从服务器(而不是数据库)获取json文件。这起到了作用。那么,为什么访问数据库似乎不起作用,以及为什么我似乎无法从http://localhost:3000/server/routes/test/api.js在api中。

我花了整整两天的时间进行故障排除,但没有结果。

in my api.js
router.get ('/test', function (req, res, next) {
res.json({'testMessage': 'everything is going ', 'someNumber': 457});
});

在server.js 中

<!-- end snippet -->
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-js -->
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var bodyParser = require('body-parser');
var morgan = require ('morgan');
var mongoose = require('mongoose');
var flash = require('connect-flash');
var chat = require('./server/routes/chat');
var app = express();
var passport = require ('passport');
var cookieParser = require ('cookie-parser');
var session = require ('express-session');
var config = require ('./config/database');
var engines = require('consolidate');
var mongoose = require('mongoose');
var router = express.Router(); 
// this is where I set up the routing for the api  
// in the root of the project I created server directory and 
// within it a routes directory that holds the api.js
var api = require('./server/routes/api');

mongoose.Promise = require ('q').Promise;
require('./config/passport')(passport);
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({'extended':'true'}));
app.use(express.static(path.join(__dirname, 'dist')));
app.use(express.static(path.join(__dirname, 'public')));
app.use(cookieParser());
app.use(morgan('dev'));
app.use(session({
secret: 'secret123',
resave: true,
saveUnitialized: true
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
//this is where I set up the routing is something  wrong here?
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'dist/index.html'));
});
app.use('api', api);

thx大家,我移动了

app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'dist/index.html'));
}); 

低于

app.use('api', api);

并将其更改为:

app.use('/api', api);

问题解决了,如果先读取app.get('*'),它会将所有请求发送到index.html。因此,确保任何其他路线都在它之上。

最新更新