关于loopback的相关
安装:
$ mkdir office-supplies$ cd office-supplies$ slc loopback$ slc loopback:model product$ slc run
添加视图和静态资源
//server.jsapp.set('view engine', 'jade'); //添加jadeapp.set('views', __dirname + '/views'); //添加目录server/views,注意这里是在server中
- 静态资源路径在middleware.json中配置
"files": { "loopback#static": { "params": "$!../client" } },
页面路径
- 原本路径是要写在server/boot.roots.js文件中,可以将路径单独放到一个文件夹中; 添加server/routers
/routers/index.jsmodule.exports = function(app) { var router = app.loopback.Router(); router.get('/', function(req, res, next) { res.render('index', {user: null}); }); return router};
var index = require('../routers/index')(server);server.use('/', index);
在server端使用coffeeScript
//server.js; 安装coffee-script之后var coffeeScript = require('coffee-script');coffeeScript.register();//或require('coffee-script');
安装gulp,前端使用coffeeScript和less
//Gulpfile.jsvar gulp = require('gulp');require('gulp-load-params')(gulp); //安装;之后使用`gulp.loadTasks`gulp.loadTasks(__dirname); //在文件同级建立tasks文件夹gulp.task('default',['watch']); //1.执行watch
//tasks/watch.jsmodule.exports = function(gulp){ var livereload = require('gulp-livereload'); //安装,同时下载chrome相应插件 gulp.task('reload', function(){ gulp.src(['./server/views/**/*.jade']) .pipe(livereload()); }); //4 gulp.task('watch:frontend', function(){ livereload.listen(); gulp.watch([ './client/javascripts/**/*.js', './client/stylesheets//**/*.css', './server/views/**/*.jade' ], ['reload']); //3.创建并监听,这三个文件夹改变的时候执行reload }); gulp.task('watch:frontend:coffee', function(){ gulp.watch('./coffee/**/*.coffee', ['coffee:client']) //创建coffee文件夹并添加coffeescript文件 }); //3.监听.coffee,改变的时候执行coffee:client; 这里写client区分服务器端的coffee gulp.task('watch:frontend:less', function(){ gulp.watch('./less/**/*.less', ['less']) //创建less文件夹并添加less文件 }) //3.监听.less,改变的时候执行less; gulp.task('watch', [ 'watch:frontend:coffee', 'watch:frontend:less', 'watch:frontend' ]); //2.执行这三个}//tasks/less.jsmodule.exports = function(gulp){ var less = require('gulp-less'); var minify = require('gulp-minify-css'); gulp.task('less', function(){ gulp.src('./less/**/*.less') .pipe(less()) .pipe(minify()) .pipe(gulp.dest('./client/stylesheets/')) }); 4.编译,压缩并输出less文件}//tasks/coffee.jsmodule.exports = function(gulp){ var coffee = require('gulp-coffee'); var coffeeLint = require('gulp-coffeelint'); gulp.task('coffee:client', function(){ gulp.src('./coffee/**/*.coffee') .pipe(coffeeLint()) .pipe(coffee()) .pipe(gulp.dest('./client/javascripts/')); }); 4.编译并输出js文件}
利用nodemon重新自动启动程序
- 安装之后,修改
package.json
文件; 也可以利用gulp-nodemon
将自动启动设置在gulpfile.js
中;
//在package.json的scripts中添加"start": "nodemon -e 'js, coffee, json' ./server/server.js" //分别重新启动表示监听的文件夹后缀名和重新启动执行的文件名//运行 npm start
关于开始程序的boot方法
boot(app, [options], [callback])
: Initialize an application from an options object or a set of JSON and JavaScript files. - 如果options是string类型的话,将其设置为root路径;然后
- 在设置的根路径下查找datasources.json文件设置DataSources
- 在设置的根路径下查找model-config.json文件指定models
- 在设置的根路径下查找config.json文件指定应用程序的配置
- 如果是对象,就会相应查找
models
,dataSources
等属性来配置,具体查看
使用querystring动态生成查询字符串
var qs = require('querystring');var user = {name: "jinks", age: 23}user = qs.stringfy(user);//name=jinks&age=23
安装包: 安装的时候注意如果是仅在dev下安装的,则用npm install --save-dev