我正在通过MEAN堆栈教程.它包含以下代码作为路由index.js.我的Mongo系列的名字是brandcollection.
/* GET Brand Complaints page. */
router.get('/brands', function(req, res) {
var db = req.db;
var collection = db.get('brandcollection');
collection.find({},{},function(e,docs){
res.render('brands', {
"brands" : docs
});
});
});
Run Code Online (Sandbox Code Playgroud)
我想修改此代码,但我不完全了解如何.find调用该方法.具体来说,我有以下问题:
传递什么对象function(e, docs)作为其参数?
是function(e, docs)MongoDB语法的一部分吗?我查看了有关Mongo CRUD操作的文档,但找不到对它的引用.似乎Mongo .find操作的标准语法是collection.find({},{}).someCursorLimit().我没有在.find操作中看到对第三个参数的引用,为什么一个允许在这里?
如果function(e, docs)不是MongoDB操作,它是Monk API的一部分吗?
从教程中可以清楚地看出,这段代码返回集合中的所有文档,并将它们作为名为"品牌"的属性放在对象中.但是,function(e, docs)在这个过程中,具体扮演什么角色呢?
任何澄清将非常感谢!
我一直在开发一个mean.js应用程序.我有一个管理主题,我正在尝试与现有的应用程序集成.
我的问题是
假设我有一个Index.html文件,如果预期路由是Dashboard,我只是替换页面视图的一部分,(Ruby on Rails Developers会知道这个)
更新1:我用我需要的管理员索引和布局文件创建了2个文件.
admin.index.server.view.html
Run Code Online (Sandbox Code Playgroud)
和
admin.layout.server.view.html
Run Code Online (Sandbox Code Playgroud)
我还在core.server.routes.js中添加了以下代码
module.exports = function(app) {
// Root routing
var core = require('../../app/controllers/core');
app.route('/').get(core.index);
app.route('/admin/').get(core.adminIndex);
};
Run Code Online (Sandbox Code Playgroud)
我还在core.server.controller.js中添加了以下代码
exports.adminIndex = function(req, res) {
res.render('admin.index', {
user: req.user || null
});
};
Run Code Online (Sandbox Code Playgroud)
当我点击localhost:3000/admin /我得到错误:找不到模块'索引'
我是MEAN的新手,只是去了一些往返(半天安装和卸载MEAN以及它的一切?)并且不想再这样做了.
我在Windows8上安装的MongoDB正在运行,已经构建为Windows服务.然而,然后我看到有一个叫做的东西npm install mongodb.我现在不知道该怎么办.
使用已经安装的默认MongoDB作为Windows服务与运行有区别npm install mongodb吗?
如果MongoDB此时用于MEAN堆栈构建,我该怎么办,但我也希望它打开并可能用于其他目的.
我正在学习如何使用MEAN堆栈并练习我正在做一个网络,询问您的姓名,电子邮件和最近完成的课程.然后它将信息存储到DB.我找不到错误,也许是一个简单的错误.
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var morgan = require('morgan');
var mongoose = require('mongoose');
var port = process.env.PORT || 8080;
var Schema = mongoose.Schema;
var User = require('./user');
app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json());
mongoose.connect('mongodb://localhost');
app.use(morgan('dev'));
var apiRouter = express.Router();
apiRouter.route('/')
.post(function(req, res) {
var user = new User();
user.name = req.body.name;
user.course = req.body.course;
user.mail = req.res.mail;
user.save(function(err) {
console.log(user.name);
res.json({ message: 'Thank you!'});
});
}).get(function(req, res) {
User.find(function(err, users) {
if (err) res.send(err); …Run Code Online (Sandbox Code Playgroud) 我不确定这是否是提出这个问题的正确 StackExchange,但我正在设置一个 MEAN 堆栈应用程序,我想从一开始就做到这一点。
我真的很想使用 Docker 和 Heroku(因为他们有新的流水线组并且作为唯一的开发人员易于部署),但是我找不到任何关于如何在 Heroku 上将 MongoDB 作为 docker 映像运行的指南。
这甚至可能吗?我也不太明白如何将数据库放入二进制映像(Docker 映像)中,但我读过的每个指南都说要分离微服务。
有没有其他人这样做过?
谢谢。
编辑:或者让 Mongo 未泊坞窗并使用 MongoLabs 并为 Dev/Prod 数据库拥有两个单独的实例只是一个更好的主意?
我正在使用 mongoose.findOneAndUpdate() 方法来插入和更新集合中的文档。但是,如果表中没有要更新的内容并且创建了新文档,则 findOneAndUpdate() 回调将返回 null。
我怎么知道 findOneAndUpdate() 的插入部分是否成功?
TimeTable.getTimeTableModelObject().findOneAndUpdate({ageGroup:'2'}, timeTable, {upsert:true}, function(err, foundData){});
Run Code Online (Sandbox Code Playgroud) 我目前正在学习 webpack 和 MEAN 堆栈。我需要将我的 scss 文件加载到我的项目中,并且我在 webpack.common.js 文件中使用了 extract-text-webpack-plugin 和 css-loader 和 sass-loader。它成功地将 scss 文件转换为 css 并将其加载到我的项目所在的文件夹“/dist/”。但是,我在运行 webpack 时遇到错误:
ERROR in ./~/css-loader!./~/sass-loader/lib/loader.js!./~/extract-text-webpack-plugin/loader.js?{"id":1,"omit":1,"remove":true}!./~/style-loader!./~/css-loader!./~/
sass-loader/lib/loader.js!./src/app/app.component.scss
Module build failed:
// html, body{
^
Invalid CSS after "...load the styles": expected 1 selector or at-rule, was "var content = requi"
in C:\Users\Andres\Source\Repos\mean\mean\src\app\app.component.scss (line 1, column 1)
@ ./src/app/app.component.scss 2:21-330
@ ./src/app/app.component.ts
@ ./src/app/app.module.ts
@ ./src/app/index.ts
@ ./src/main.browser.ts
Run Code Online (Sandbox Code Playgroud)
这是webpack.common.js文件,我与(它包括在几乎所提供的webpack.common.js文件工作mean.io有一些细微的变化我做了,开始你的意思的应用程序):
const webpack = require('webpack');
const helpers = require('./helpers');
const AssetsPlugin = require('assets-webpack-plugin');
const …Run Code Online (Sandbox Code Playgroud) 这是我的节点server.js,它位于项目根目录中,有自己的 npm 配置。所有 Angular 文件都在dist/client之后ng buildclient/dist
const express = require('express');
const colors = require('colors');
const bodyParser = require('body-parser');
const path = require('path');
const cors = require('cors');
const PORT = process.env.port||'3200';
// init "app"
const app = express();
app.use(cors({origin: `http://localhost:4200`}));
// angular entry point
app.use(express.static(path.join(__dirname, 'client/dist')));
//parse incoming data before routes
app.use(bodyParser.json())
// api routes
app.use('/api',require('./api/api'));
// error middleware
app.use(function(err, req, res, next){
console.log(`${err}`.red.bold)
res.status(422).send({error: err.message });
});
// listen
app.listen(PORT, function(){
console.log(`app running on …Run Code Online (Sandbox Code Playgroud) 我已经把我的后端放到了aws上。后端 url 在邮递员中工作正常。
但是当我将后端 url 放入 Angular 服务时,locahost 会附加到它的前面。
我该如何解决这个问题。
后端网址:api.angularapp.site
在我的服务中,我这样称呼:
private url = "api.angularapp.site/api/v1";
public signupFunction(data):Observable<any>{
const params=new HttpParams()
.set('firstName', data.firstName)
.set('lastName', data.lastName)
.set('mobileNumber', data.mobile)
.set('email', data.email)
.set('password', data.password)
.set('gender',data.gender)
.set('profilePic',data.profilePic);
return this.http.post(`${this.url}/users/signup`,params);
}//end of signup function
Run Code Online (Sandbox Code Playgroud)
但是当我运行应用程序并尝试注册时,我收到控制台错误:
http://localhost:4200/api.angularapp.site/api/v1/users/signup 404(未找到)
为什么这个 localhost 将自身附加到后端调用 url。
在 url 之前 ** private url = " http://localhost:3000/api/v1 ";** 在这种情况下,角度可以很好地连接到后端。但现在我不明白它是如何在启动中附加角度 locahost url
请帮忙
我试图在 ngRx 中实现效果。我从“@ngrx/effects”导入 ted“Effect”,但显示错误“模块'“@ngrx/effects”'没有导出成员'Effect'.ts(2305)”
import { Actions, ofType, Effect } from "@ngrx/effects";
import { switchMap } from "rxjs/operators";
import * as AuthActions from './auth.actions';
type loginResponse = { token: string, message: string, loggedIn: boolean, time: number };
export class AuthEffects {
@Effect
login = this.actions$.pipe(
ofType(AuthActions.LOGIN),
switchMap((authData: AuthActions.Login) => {
return this.http
.post<loginResponse>(
'http://localhost:3000/user/signup',
{
email: authData.payload.email,
password: authData.payload.password
}
)
})
)
constructor(private actions$: Actions, private http: HttpClient) { }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 ngRx 中的效果来实现登录系统。我从“@ngrx/effects”导入了“Effect”,但它显示错误“模块'“@ngrx/effects”'没有导出的成员'Effect'.ts(2305)”