作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在后端有一个 MongoDB,在前端有一个 inMemoryDataService,但是每个都会导致另一个崩溃。例子:1. 如果我运行了 inMemoryDataService,我的后端注册/登录将无法工作。2. 如果我只运行 mongo,我的 api/emotions 将不会加载。
Any 建议要么两者都工作,要么如何让后端替换 inMemoryDataService。谢谢
内存中数据.service.ts
import { InMemoryDbService } from 'angular-in-memory-web-api';
export class InMemoryDataService implements InMemoryDbService {
createDb() {
const emotions = [
{ id: 11, name: 'HAPPY' },
{ id: 12, name: 'SAD' },
{ id: 13, name: 'STRESSED' },
{ id: 14, name: 'EXCITED' },
{ id: 15, name: 'EMBARRASSED' },
{ id: 16, name: 'SLEEPY' },
{ id: 17, name: 'SURPRISED' },
{ id: 17, name: 'ANXIOUS' },
];
return {emotions};
}
}
server.js
require('rootpath')();
var express = require('express');
var app = express();
var cors = require('cors');
var bodyParser = require('body-parser');
var expressJwt = require('express-jwt');
var path = require('path');
var config = require('config.json');
app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// use JWT auth to secure the api, the token can be passed in the authorization header or querystring
app.use(expressJwt({
secret: config.secret,
getToken: function (req) {
if (req.headers.authorization && req.headers.authorization.split(' ')[0] === 'Bearer') {
return req.headers.authorization.split(' ')[1];
} else if (req.query && req.query.token) {
return req.query.token;
}
return null;
}
}).unless({ path: ['/users/authenticate', '/users/register'] }));
// routes
app.use('/users', require('./controllers/users.controller'));
app.use('/emotions', require('/controllers/emotion.controller'));
// error handler
app.use(function (err, req, res, next) {
if (err.name === 'UnauthorizedError') {
res.status(401).send('Invalid Token');
} else {
throw err;
}
});
// start server
var port = process.env.NODE_ENV === 'production' ? 80 : 4000;
var server = app.listen(port, function () {
console.log('Server listening on port ' + port);
});
config.json
{
"connectionString": "mongodb://mongodbuser:passsword@danu7.it.nuigalway.ie:2222/mongodbdb",
"apiUrl": "http://localhost:4000",
"secret": "Bearer"
}
最佳答案
找到了答案:将 passThruUnknownUrl: true
添加到 app.module.ts 中的内存数据服务导入中,以便后端数据服务的 http 可以正确传递!
app.module.ts
imports: [
BrowserModule,
AppRoutingModule,
HttpClientModule,
HttpModule,
FormsModule,
// BootstrapModalModule,
HttpClientInMemoryWebApiModule.forRoot( InMemoryDataService, { passThruUnknownUrl: true } )
],
关于javascript - InMemoryDataService 导致 MongoDB 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49757272/
我在后端有一个 MongoDB,在前端有一个 inMemoryDataService,但是每个都会导致另一个崩溃。例子:1. 如果我运行了 inMemoryDataService,我的后端注册/登
我是一名优秀的程序员,十分优秀!