我已经创建了一个具有node.js,express和angular.js的Web应用程序.我正在开始一个新项目,我也想使用MongoDB.那将是平均值.使用MEAN,我可以用这个开始一个项目:
http://mean.io/.
现在,我已经写了REST API,我听说过sails.js听起来很引人注目.它可以为您自动创建REST API.
所以我的问题是,使用MEAN堆栈和sails.js开始一个新项目我将采取什么步骤?
选项:
>我将克隆的平均值堆栈,运行npm安装,然后npm安装sails.js?
>或者,似乎sails.js有自己的想法,为目录结构做什么.那么我会按照他们的说明http://sailsjs.org/#!getStarted安装sails.js,然后安装Angular和Mongo? (我想我不需要Mongoose,因为sails.js有自己的ORM,waterline).
我实际上今天会尝试选项2,但我很高兴知道哪些步骤对别人有效.
非常感谢你!
你在正确的路径上安装了npm install -g sails和sails new myproj.既然你想使用mongo,你将需要安装
waterline adapter for mongo(在项目目录中)npm install sails-mongo –save并配置sails使用mongo.
原文链接:https://www.f2er.com/angularjs/142875.html将mongo配置添加到config / adapters.js文件中:
module.exports.adapters = { 'default': 'mongo',mongo: { module : 'sails-mongo',host : 'localhost',port : 27017,user : 'username',password : 'password',database : 'your mongo db name here',// OR module : 'sails-mongo',url : 'mongodb://USER:PASSWORD@HOST:PORT/DB',// Replica Set (optional) replSet: { servers: [ { host: 'secondary1.localhost',port: 27017 // Will override port from default config (optional) },{ host: 'secondary2.localhost',port: 27017 } ],options: {} // See http://mongodb.github.io/node-mongodb-native/api-generated/replset.html (optional) } } };
此外,要创建您的API(在项目目录中)使用sails生成NAME,其中NAME是模型的名称.默认情况下,任何内容都可以添加到数据库中,因此您可能希望限制属性/字段,甚至可能会对其进行验证.这很容易.生成命令为您创建了几个文件,其中一个是模型/ NAME.js.在这个文件中,您可以简单地导出一个对象,其属性对应于您想要的字段,以及在保存之前要发生的任何限制/验证.
// Person.js var Person = { attributes: { firstName: 'STRING',lastName: 'STRING',age: { type: 'INTEGER',max: 150,required: true } birthDate: 'DATE',phoneNumber: { type: 'STRING',defaultsTo: '111-222-3333' } emailAddress: { type: 'email',// Email type will get validated by the ORM required: true } } }; module.exports = Person;
This page列出了您可以拥有的所有不同类型和验证.
一旦你完成设置,运行帆来启动你的服务器.默认端口为1337,但您可以使用PORT env var或local configs更改该端口
module.exports = { port: 80 // ... more config things }
另外,对于MEAN中的“A”,请查看Angular Sails.它的小角度服务让您轻松利用帆船为您做的socket.io的优势.您可以通过套接字连接调用所有API,使其更轻更快.
在这种情况下,$sails替换$http
app.controller("FooController",function ($scope,$sails) { $scope.bars = []; $sails.get("/bars",function (data) { $scope.bars = data; }); });