我有一个基本问题。
我正在尝试 Sails ( http://sailsjs.org/ ),它有终端命令来生成实体,例如 User
实体:
sails generate api user
我的问题是,UserController.js 文件显示:
/**
* UserController
*
* @description :: Server-side logic for managing users
* @help :: See http://sailsjs.org/#!/documentation/concepts/Controllers
*/
module.exports = {
};
为什么我访问时:
http://localhost:1337/user/create
它知道如何创建一个新的用户实体? Controller 显然没有这样的创建操作:
module.exports = {
create: function(req, res) {
// code to create new user
}
};
所以肯定什么都不会发生。
我做了一些 Symphony 2.0 PHP Web 框架,我们需要手动创建这些操作。
我既困惑又印象深刻,有什么想法吗?
最佳答案
欢迎来到 Sails.js 世界!
您刚刚发现了Blueprint API。
当您提升应用程序时,Sails 会向具有同名型号的 Controller 添加通用操作(迄今为止为find
、findOne
、create
、update
、destroy
、populate
、 add
和 remove
操作隐式存在)。这称为蓝图操作。
此外,蓝图路由也可以绑定(bind)到 Controller 的操作。以下是这些路线的列表:
- 蓝图 RESTful 路由:自动生成的路由,以在
find
、create
、update
和destroy
操作之上公开传统 REST API- 获取/post->
PostController.find
- GET/post/:id ->
PostController.findOne
- 发布/post ->
PostController.create
- PUT/post/:id ->
PostController.update
- 删除/post/:id ->
PostController.destroy
- 获取/post->
- 蓝图快捷方式路由:简单的帮助程序,用于提供从浏览器的 URL 栏访问 Controller 的 CRUD 方法
- GET/user/create?name=joe ->
Post.create
- GET/user/update/1?name=mike ->
Post.update
- GET/user/destroy/1 ->
Post.destroy
- GET/user/create?name=joe ->
- 蓝图操作路由:自动为您的自定义 Controller 操作创建路由
- GET/group/count ->
Post.count
- GET/group/count ->
它们中的每一个都可以在config/blueprints.js
文件中停用。
您可以在docs上找到更多详细信息。
如果您想重新定义蓝图操作,请选中this SO question。
关于sails.js - 当 Controller 为空时,Sails JS 如何创建生成的实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30906117/