Ответ 1
Вы находитесь на правильном пути с помощью npm install -g sails
и sails new myproj
. Поскольку вы хотите использовать mongo, вам нужно будет установить ватерлинговый адаптер для mongo (в проекте dir) npm install sails-mongo --save
и настроить паруса для использования mongo.
Добавьте конфигурацию 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:[email protected]: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 generate NAME
, где NAME
- это имя модели. По умолчанию все может быть добавлено в базу данных, поэтому вы можете ограничить свойства/поля и, возможно, даже проверить их. Это просто. Команда generate создала для вас несколько файлов, одна из которых - models/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;
На этой странице перечислены все типы и валидации, которые вы можете иметь.
Как только вы настроитесь, запустите sails lift
, чтобы запустить сервер. Порт по умолчанию - 1337, но вы можете изменить его с помощью PORT env var или в локальных конфигурациях
module.exports = {
port: 80
// ... more config things
}
Кроме того, что касается "A" в MEAN, ознакомьтесь с Angular Sails. Это небольшая услуга angular, которая позволит вам легко воспользоваться преимуществами сокетов .io, которые делают паруса для вас. Вы можете вызывать все ваши API через соединение сокета, чтобы сделать их еще легче и быстрее.
В этом случае $sails
заменяет $http
app.controller("FooController", function ($scope, $sails) {
$scope.bars = [];
$sails.get("/bars", function (data) {
$scope.bars = data;
});
});