loopback 01

关于loopback的相关blog

安装: 官网

$ mkdir office-supplies
$ cd office-supplies
$ slc loopback
$ slc loopback:model product
$ slc run

添加视图和静态资源

//server.js

app.set('view engine', 'jade');                      //添加jade
app.set('views', __dirname + '/views');      //添加目录server/views,注意这里是在server中
  • 静态资源路径在middleware.json中配置
  "files": {
    "loopback#static": {
      "params": "$!../client"
    }
  },

页面路径

  • 原本路径是要写在server/boot.roots.js文件中,可以将路径单独放到一个文件夹中; 添加server/routers
/routers/index.js

module.exports = function(app) {

  var router = app.loopback.Router();
  router.get('/', function(req, res, next) {
  	res.render('index', {user: null});
  });

  return router
};
  • 修改server/boot/root.js
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

  • 安装gulp之后,添加Gulpfile.js文件
//Gulpfile.js
var gulp = require('gulp');

require('gulp-load-params')(gulp);   //安装;之后使用`gulp.loadTasks`

gulp.loadTasks(__dirname);  //在文件同级建立tasks文件夹

gulp.task('default',['watch']);  //1.执行watch

  • tasks文件夹中添加文件
//tasks/watch.js

module.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.js

module.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.js

module.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等属性来配置,具体查看boot

使用querystring动态生成查询字符串

  • querystring包是nodejs自带的;
var qs  = require('querystring');
var user = {name: "jinks", age: 23}

user = qs.stringfy(user);
//name=jinks&age=23

安装包: 安装的时候注意如果是仅在dev下安装的,则用npm install --save-dev

原文地址:https://www.cnblogs.com/jinkspeng/p/4378153.html