成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Node.js筆記(一)項目的建立

1、supervisor 可以幫助你實現(xiàn)這個功能,它會監(jiān)視你對代碼的改動,并自動重啟 Node.js。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、金鄉(xiāng)ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的金鄉(xiāng)網(wǎng)站制作公司

   使用方法很簡單,首先使用 npm 安裝 supervisor:

2、app.js是工程的入口,里面負責定義路由控制器

   routes/index.js 是路由控制器文件 用于組織展示的內(nèi)容

3、index.ejs 是模板文件 即routes/index.js中調(diào)用的模版

4、app.get('/hello', routes.hello);

   固定的路徑設(shè)置路由規(guī)則

5、

app.get('/user/:username', function(req, res) {
        res.send('user: ' + req.params.username);
   });

   高級的路由匹配模式

6、app.set('views', __dirname + '/views');

   app.set('view engine', 'ejs');

   模版引擎,表明要是用的模版引擎是 ejs,模版的位置在 views子目錄下

   在routes/index.js的exports.index函數(shù)中通過語句來調(diào)用模版引擎:

   res.render('index', {title: 'Express'})

   res.render的作用就是調(diào)用模版引擎,并將結(jié)果返回給瀏覽器客戶端,它接受的兩個參數(shù)

   第一個參數(shù)是模版的名稱,第二個參數(shù)是模版里面要轉(zhuǎn)換過來的數(shù)據(jù),用與模版翻譯

   ejs的標簽系統(tǒng)只有三種:<% code %>  表示javascript代碼,

 <%= code %> 顯示轉(zhuǎn)換過HTML特殊字符的內(nèi)容

 <%- code %> 顯示原始HEML內(nèi)容

7、layout.ejs  是一個網(wǎng)頁布局模版,一般頁眉頁腳等重復(fù)比較多的會在這個模版里面來寫,

               也可以關(guān)閉模版功能,

      在app.js中app.configure中l(wèi)ayout: false

               另一種情況就是,一個項目可能有多個網(wǎng)頁布局模版,前臺或者后臺,

      也可以在模版翻譯的時候制定布局模版

       res.render('userlist', {

title: '用戶列表后臺管理系統(tǒng)',

layout: 'admin'

});

8、從 http://twitter.github.com/bootstrap/下載 Twitter Bootstrap

   從 http://jquery.com/ 下載一份最新版的 jquery.js


-------------------------------------------------------------------------------------------

////////////////////////////Node.js建立項目////////////////////////////////////////////////

-------------------------------------------------------------------------------------------

1、安裝Express框架,

$ npm install -g express  //全局安裝
$ npm install -g express -generator //這段命令可別忘了,不然會提示“express命令找不

到的”

2、創(chuàng)建工程

express -e microblog //即ejs,-j(即jade)(Express 4.0出來之后老的命令改變了)

3、創(chuàng)建依賴

cd microblog //microblog為前面創(chuàng)建工程的文件夾
npm install

4、啟動項目

npm start

Node.js筆記(一)項目的建立

5、關(guān)閉服務(wù)器 連著按兩個Ctrl + C。

項目的入口文件 app.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var users = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});


module.exports = app;

6、app.set是Express的參數(shù)設(shè)置工具,接受一個鍵(Key)一個值(Value)

可用參數(shù)如下:

  1. basepath:基礎(chǔ)地址,通常用于res.redirect()跳轉(zhuǎn)

  2. views:視圖文件目錄,存放模版文件

  3. view engine:視圖模版引擎

  4. view options:全局視圖參數(shù)對象

  5. view catch : 啟用視圖緩存

  6. case sensitive routes:路徑是否區(qū)分大小寫

  7. strict routing:嚴格路徑,啟用后不會忽略路徑末尾的 "/"

  8. jsonp callback:開啟透明的jsonp支持

7、Express依賴與connect,提供了大量的中間件,用app.use來啟用。

bodyParser的功能是解析客戶端請求,通常是通過POST傳送的內(nèi)容。

8、

app.use('/', routes);
app.use('/users', users);

是一個路由控制器,如果請求是訪問"/"路徑,則會轉(zhuǎn)到'./routes/index'來控制。

9、app.listen(3000); 啟動,監(jiān)聽3000端口。該app.js中沒有寫到,會默認端口為3000

在 /bin/ 目錄下的文件 "www" 中,

/**
 * Get port from environment and store in Express.
 */
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
.
.
.
/**
 * Listen on provided port, on all network interfaces.
 */
server.listen(port);

10、routes/index.js是路由文件,相當于控制器,

var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});
module.exports = router;

11、index.ejs 是模板文件,即 routes/index.js 中調(diào)用的模板。內(nèi)容是:

<h2><%= title %></h2>
<p>Welcome to <%= title %></p>

12、layout.ejs

默認情況下所有的模板都繼承自 layout.ejs,即 <%- body %>

部分才是獨特的內(nèi)容,其他部分是共有的,可以看作是頁面框架。

13、app.js 中并沒有一個路由規(guī)則指派到 /stylesheets/style.css,但 app 通過

app.use(express.static(path.join(__dirname, 'public'))); 配置了靜態(tài)文件服務(wù)器,因此

/stylesheets/style.css 會定向到 app.js 所在目錄的子目錄中的文件 public/stylesheets/style.css,

14、重新寫一個Hello控制器

1)在app.js里面添加:

app.use('/hello', routes);

2)在index.js里面添加

router.get('/hello', function(req, res, next) {
  res.send('The time is ' + new Date().toString());
});

這兩個文件相互照應(yīng)著。頁面就出來了

Node.js筆記(一)項目的建立

本文題目:Node.js筆記(一)項目的建立
網(wǎng)頁URL:http://jinyejixie.com/article0/poseio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、、移動網(wǎng)站建設(shè)、定制開發(fā)、企業(yè)網(wǎng)站制作、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
西峡县| 潢川县| 龙门县| 长丰县| 乳山市| 河池市| 台江县| 绿春县| 华宁县| 金溪县| 泰来县| 呼图壁县| 民和| 南皮县| 龙岩市| 枞阳县| 大荔县| 安远县| 华池县| 额尔古纳市| 扶绥县| 车致| 北流市| 密云县| 北海市| 班玛县| 柳林县| 星子县| 大悟县| 韶山市| 中山市| 张家界市| 新和县| 洛浦县| 青河县| 永仁县| 武山县| 宁夏| 稻城县| 大新县| 溧水县|