如何安全地删除内置的CRUD模块yo meanjs:crud-module <module-name>?
删除文件夹和服务器文件是否足够?
我正在使用MongoDB,Angular,Express和Node(MEAN堆栈)构建应用程序.
我使用MEAN.JS生成器来构建我的应用程序.
我将使用文章模块作为参考.
假设我的文章集合中有7000条记录,并且每条记录都有一个与之关联的日期.每次加载页面以查看表中的记录时,将所有7000条记录加载到内存中是低效的,因此我看到了可怕的性能损失.出于这个原因,我只想加载日期范围为(1个月前)到(从现在起1年)的记录,并将其显示在表格中.我目前可以通过以下方式执行此操作:
在我的articles.client.controller.js中:
$scope.find = function() {
$articles = Articles.query();
};
Run Code Online (Sandbox Code Playgroud)
...在我的articles.server.controller.js中:
var now = new Date();
var aYearFromNow = new Date(now.getTime() + 86400000*365); //add a year
var aMonthAgo = new Date(now.getTime() - 86400000*30); //subtract roughly a month
exports.list = function(req, res) { Article.find().where('date').lt(aYearFromNow).gt(aMonthAgo).sort('-created').populate('user', 'displayName').exec(function(err, articles) {
if (err) {
return res.send(400, {
message: getErrorMessage(err)
});
} else {
res.jsonp(articles);
}
});
};
Run Code Online (Sandbox Code Playgroud)
问题是,这不是一种动态的做事方式.换句话说,我希望用户能够指定他们想要看到多远和多远.
如何在我的客户端视图中绑定变量(例如'aYearFromNow'和'aMonthAgo'),这将改变我的服务器控制器中的查询参数?
我开始使用Mean JS样板(ref网站),并想知道推荐的位置包括公共自定义javascript,jQuery文件(例如FacebookSDK,jQuery动画,......).
我假设它将在公共文件夹中的某个位置.默认结构如下:
应该进入模块还是lib文件夹?您能否就每个文件夹的功能提供更多指导?任何准则?
我正在使用MeanJS堆栈来开发Web应用程序.我遇到的问题是,我的常规注册过程有一些Oauth用户配置文件不常见的独特参数.因此,当我让用户去注册Facebook时,我将它们移动到一个新的注册表单,让他们填写额外的参数,然后点击"注册Facebook".
这些路由与此处的常见MeanJS路由相同:https: //github.com/meanjs/mean/blob/master/app/routes/users.server.routes.js
特别是这些线:
app.route('/auth/facebook').get(passport.authenticate('facebook', {
scope: ['email']
}));
app.route('/auth/facebook/callback').get(users.oauthCallback('facebook'));
Run Code Online (Sandbox Code Playgroud)
我想做的是,将额外的参数附加到请求对象,以便当auth进程到达exports.saveOAuthUserProfile内部时:https://github.com/meanjs/mean/blob/master/app/controllers/users /users.authentication.server.controller.js
此函数将能够访问这些参数并将其保存为用户模型的一部分.
我已经尝试将参数附加到Get请求和访问
req.params.paramId
但这不起作用,因为你不能用facebook api注册一个param加载的请求(或者至少看起来就是这样).
我已经在StackOverflow的其他地方读过你可以加载请求状态,但这对我来说似乎很奇怪.这是以下链接:Facebook OAuth:自定义callback_uri参数
所以,关于如何将额外数据加载到Oauth请求的任何指导,以便当我保存用户配置文件时我可以访问并保存它,这将是很好的.
多谢你们.
我的lat&lng数字正在转换为字符串.我的部分整数仍然是Number的正确数据类型.如何设置模型以便我可以将我的lat&lng作为Float而不是String返回?
我在我的数据库中存储latLng数据.现在我将我的数据类型设置为Lat和lng的数字.当我检查我的数据库时,我看到了这个:
{
"_id" : ObjectId("563bd98a105249f325bb8a7e"),
"lat" : 41.8126189999999980,
"lng" : -87.8187850000000054,
"created" : ISODate("2015-11-05T22:34:50.511Z"),
"__v" : 0,
"section" : 0,
}
Run Code Online (Sandbox Code Playgroud)
但是当我使用快递我的数据时,我得到了这个:
{
"_id": "563bd98a105249f325bb8a7e",
"lat" : "41.8126189999999980",
"lng" : "-87.8187850000000054",
"__v": 0,
"section" : 0,
"created" : "2015-11-05T22:34:50.511Z",
}
Run Code Online (Sandbox Code Playgroud)
我的模特:
var WaypointSchema = new Schema({
lat: {
type: Number
},
lng: {
type: Number
},
section: {
type: Number
}
created: {
type: Date,
default: Date.now
}
});
mongoose.model('Waypoint', WaypointSchema);
Run Code Online (Sandbox Code Playgroud)
快速控制器:
exports.list = function(req, res) {
Waypoint.find().sort('-created').populate('user', 'displayName').exec(function(err, …Run Code Online (Sandbox Code Playgroud) 我正在用MEAN.JS构建一个应用程序,我正在尝试使用另一个模块的控制器.我发现我可以通过依赖注入来做到这一点:
angular.module(‘MyModule’, [‘Dependency’]);
Run Code Online (Sandbox Code Playgroud)
但是在MEAN.JS中创建模块的方式是:
ApplicationConfiguration.registerModule('MyModule');
Run Code Online (Sandbox Code Playgroud)
我不能只传递第二个参数registerModule.那么,我该怎么做呢?我必须使用这两种方法吗?我做错了吗?
我想添加一个新模型:Campaign.Campaigns仅由管理员创建,但可以由"广告系列所有者"(另一个User)查看.创建活动表单应列出可用的用户,以便管理员可以选择那个将成为其"所有者"的用户Campaign.
问题是,创建活动表单是由谁控制的CampaignsController,我该如何列出Users?我已经使用了另一个控制器(UsersController),这就是问题,因为我们在Campaign模块中,所以它是未定义的.
问题是grunt自动启动应用程序错误:
我将控制器从一个模块(文件夹)移动到另一个,但是grunt仍在尝试从旧路径加载它,因此失败:未找到控制器.我认为问题是依赖注入,但你只需关闭grunt(Ctrl + C)并再次运行它.问题解决了.
无论如何,感谢@gilBirman的答案,因为它是正确的:没有必要向MEANJS注入任何东西.
我正在尝试将ng-sortable添加到我的mean.js应用程序中.https://github.com/a5hik/ng-sortable
按照安装说明并将它们调整为mean.js我包含了js和css文件(正确加载),但我倒下的地方是添加模块依赖项:
并将可排序模块注入依赖项.
Run Code Online (Sandbox Code Playgroud)angular.module('xyzApp', ['ui.sortable', '....']);
我的angularjs控制器看起来像这样:
var listers_mod = angular.module('listers');
listers_mod.controller('PagesController', ['$scope', '$http', '$stateParams', '$location', 'Authentication',
function($scope, $http, $stateParams, $location, Authentication) { ... }
]);
Run Code Online (Sandbox Code Playgroud)
我的第一次尝试是在上面的控制器文件中添加ui.sortable:
var listers_mod = angular.module('listers', ['ui.sortable']);
Run Code Online (Sandbox Code Playgroud)
显然这不起作用.正如你可能会说我对于mean.js和MEAN堆栈一般都很新,所以我在这个问题上瞎磕绊绊.我试着在谷歌上搜索,当然在这里搜索,但我找不到任何对我有任何意义的答案.
欢迎任何帮助.
我正在研究我的第一个完整的堆栈javascript应用程序,特别是使用mean.js作为我的起点,我已经开始变得紧张,并且在搜索引擎优化(SEO)问题上有些困惑.
Googles最近的努力(在过去一年左右),改进javascript抓取提出这是一个非问题,或者这是我在项目的规划和结构中需要考虑的事情?
如果Google现在可以抓取AngularJS/Ajax重型应用程序,为什么我们会收到有关SEO问题解决方案的博客文章:http: //blog.meanjs.org/post/78474995741/mean-seo
我之前已经问过关于SEO和AngularJS的问题了,但是在这个问题上似乎有很多不同的意见我迷失了,并且有一些更具有意义的想法会更好.我主要担心的是:
设置node.js的最佳项目结构真的令人困惑我正在开发适用于Browser,Mobile和Desktop的node.js应用程序.该应用程序有许多模块,如计费,支持,仪表板等.
我开始使用express.js MVC模式,后来Sails.js看起来很有吸引力.然后遇到了MEAN Stack,最后登陆了Microservices Seneca.js
微服务看起来像我需要的,但我看到Sails.js不支持它.我想使用Aerospike NoSQL,但waterline orm现在不支持它.
那么,您在用于Browser,Mobile和Desktop的node.js中使用的项目结构解决方案是什么?
我是MEAN的新手,只是去了一些往返(半天安装和卸载MEAN以及它的一切?)并且不想再这样做了.
我在Windows8上安装的MongoDB正在运行,已经构建为Windows服务.然而,然后我看到有一个叫做的东西npm install mongodb.我现在不知道该怎么办.
使用已经安装的默认MongoDB作为Windows服务与运行有区别npm install mongodb吗?
如果MongoDB此时用于MEAN堆栈构建,我该怎么办,但我也希望它打开并可能用于其他目的.