① sails 多维json怎么遍历
一、安装时:
先装nodejs,成功标志 node -v
安装sails 全局安装 node install sails@version -g 安装成功 sails -v
创建 项目 sails new projectname
安装grunt : npm install grunt@version --save-dev(在项目的目录中)
启动sails服务:sails lift
在启动时提示的错误,可以用 npm install 在当前的项目下进行安装。
在创建api时用命令:sails generate api book(在安装后很可能sails lift时会出现错误,此次的处理是npm install sails-config --save-dev
测试浏览:http://localhost:1337/user 创建http://localhost:1337/user/create?name=xy&password=fc12345
note:to avoid the migration warning from sails when generating the book api,add the following to config/env/development.js
models:{
migrate:"alter"
}
二、文件夹:
assets下可以放直接被url调用的网页,图片,js,等文件,url http://localhost:1337/在assets下的路径。
三、路由
config/routes.js
'/':{view:'homepage'} localhost:1337
'/about':{view:'about'} localhost:1337/about 在views下创建 about.ejs
路由蓝图包括以下三种:
restful路由
These routes always have the path of /:modelName or /:modelName/:id
and send the request to the appropriate action by using the HTTP "verb".Middleware policies should be used in a proction environment to protect these routes fromuauthorized access.
shortcut路由
these routes only respod to "get" requests and determine which action to send the request to by decoding the path.An example path would look like
/:modelName/<action> and data would be passed to the controller action using query parameters. While great for development work o a prototype,these routes should be disabled in proction.
action路由
Thes routes create shortcut routes for custom actions tat don't come for free as part of the restful routes.So for any custom action on a controller,a corresponding path followingthe format /:controllerName/:actionName whill respond to get requests and send the request to the controller.
Blueprit Actions
The Blueprint API creates a number of generic actions tohandleall of the standard behaviour of a restful JSON API to match the BluePrint routes.The following default controller actions,which can be overridden,are provided by the Blueprint api:
find findOne create update destory populate add remove
如何使用 http verb?
'get /posts':{
controller:'postsController',
actio:'list'
}
这个配置告诉应用对get 的请求做出回应,在url处理方式为postscontroller下的list操作。
‘put /posts/:id':{
controller: 'postsController',
action:'update'
}
这个配置对put请求做出回应,更新一个已存在的用户,其中id为参数,update是postsController中的一个操作。
如何更改模板?
1.用jade 代替 Ejs
npm install jade --save
更改config/views.js文件:
mole.exports.views={
engine:'jade',
layout:fasle,这个只有ejs支持,所以换成jade后,要把layout设为false;
locals:{//any options you would like to pass to the jade parser}
}
最后从package.json中移走ejs;
样式文件的替换用sass 替换 less
1.把grunt-contrib-less从age.json中移走,npm install grunt-contrib-sass --save
2.改变所有Grunt task 中的less 引用为 sass.(需要改变的有如下文件)
tasks/cofig/.js
tasks/register/compileAssets.js
tasks/register/syncAssets.js
其实如果是新项目了只需更改 tasks/importer.less为importer.sass,其它的都由Sass自动适配。
用postgres 代替LocalDB
waterline (与许多流行的数据库一起工作)(如:Postgresql,MongoDB,Redis.)
② 详解离线安装npm包的几种方法
离线安装npm包可以在没有互联网连接或者需要更好的安全性时派上用场。以下是几种离线安装npm包的方法:
1. **使用离线npm包文件:**
- 在有互联网连接的机器上,使用`npm pack`命令将所需的npm包打包成`.tgz`文件。例如:`npm pack package-name`。
- 将生成的`.tgz`文件复制到目标机器。
- 在目标机器上使用`npm install`命令来安装本地的`.tgz`文件,例如:`npm install package-name-1.0.0.tgz`。
2. **使用本地npm缓存:**
- 在有互联网连接的机器上,使用`npm install`命令来安装所需的npm包,它会默认将包缓存到本地。
- 复制本地npm缓存文件夹(通常是`~/.npm`或`%AppData%/npm-cache`)到目标机器的相同位置。
- 在目标机器上运行`npm install package-name`来安装包,npm会检查缓存并使用缓存的包。
3. **使用离线npm工具:**
- 有一些工具可以帮助你在没有互联网连接的情况下安装npm包,例如`npm-offline`、`cnpm`等。你可以在有互联网连接的机器上使用这些工具来下载依赖包,然后将它们复制到目标机器并运行工具来安装。
4. **使用yarn离线模式:**
- 如果你使用yarn而不是npm,yarn提供了一种离线模式,可以在没有互联网连接时使用。在有互联网连接的机器上使用`yarn`来安装依赖,然后将`~/.yarn-offline-mirror`文件夹复制到目标机器,并在目标机器上运行`yarn install --offline`。
请注意,离线安装npm包可能会涉及到版本兼容性和依赖问题,因此在离线环境中要特别小心。最好在有互联网连接的机器上测试包的安装,然后再将它们复制到离线机器上。此外,确保你获得了所有需要的依赖项和正确的版本,以避免潜在的问题。