具有角度2+的平均服务器。 我有一个dataservice.js请求到服务器,从http://localhost:3000/server/routes/api/test.js接收json响应 这给了我一个未选择的错误500视图引擎, 我的理解是角度不需要视图引擎?由于角度/浏览器负责这一点。
当我对api做一个getter时,路由似乎不起作用。
角度路由使用html组件,但是通过dataservice,对mongodb的get请求也不起作用。 get / test最常返回错误500,也没有选择视图引擎。
如果确实返回了某些内容,则会返回错误消息“<”而不是jsn格式。
如何确保路由适用于我的get和post消息,它们以json格式返回,而不是以HTML格式返回。 我怎么知道它使用正确的路由?我以某种方式怀疑get / post消息的rouitng似乎使用express而不是angular模块
我是堆栈溢出/均值服务器的新手,所以如果您需要更多信息,请告诉我。
FYI 我已经能够通过get从服务器(而不是数据库)获取json文件。这很有效。那么为什么到数据库的内容似乎不起作用,以及为什么我似乎无法从api中的http://localhost:3000/server/routes/test/api.js获得json响应的问题。
我花了整整2天的时间进行故障排除,没有结果。
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);
答案 0 :(得分:0)
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'dist/index.html'));
});
下面
app.use('api', api);
并将其更改为:
app.use('/api', api);
问题解决了,如果先读取app.get(&#39; *&#39;),它会将所有请求发送到index.html。所以要确保任何其他路线都高于它。