• node.js笔记


      先从app.js看起
      1.app.set(name,value)
      把名字为name的项的值设为value,用于设置参数
      app.set('views', path.join(__dirname, 'views')); 设置了模版文件夹的路径;主要清楚__dirname的意思就可以了,它是node.js中的全局变量,表示取当前执行文件的路径
      app.set('view engine', 'ejs'); 设置使用的模版引擎,我们使用的ejs
      2.app.use([path], function)
      用这个方法来使用中间件,因为express依赖于connect,有大量的中间件,可以通过app.use来使用;path参数可以不填,默认为'/' (项目中用到的就不分别解释了,用到的时候自已查一API的中间件部分)
      app.use(express.static(path.join(__dirname, 'public'))); 这一句中可能要注意一下,express.static( )是处理静态请求的,设置了public文件,public下所有文件都会以静态资料文件形式返回(如样式、脚本、图片素材等文件)
    var routes = require('./routes/index');var users = require('./routes/users');app.use('/', routes);app.use('/users', users);
      上面代码表示当用户使用/访问时,调用routes,即routes目录下的index.js文件,其中.js后缀省略,用/users访问时,调用routes目录下users.js文件
      这就是为什么,我们示例中用http://localhost:8100/访问是,修改的index.js里的文件代码可以执行(当然index.js文件中也要写对应的代码,才能是我们最终看到的效果)
      3.app.get(name)
      获取名为name的项的值
    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 }); });}
      表示如果是开发环境,处理error时会输出堆栈信息
      4.路由文件index.js
      主要看下面这段代码
    router.get('/', function(req, res) { res.render('index', { title: '<h1>Express</h1>' ,users:[{username: 'Wilson'}, {username: 'Wilson Zhong'}, {username: 'Zhong Wei'}] });});
      这段表示,router.get表示通过get请求/时,响应后面的function处理,两个参数分别是request、response;
      res.render表示调用模版引擎解析名字index的模板,传并传入了title和users两个对象做为参数;
      为什么它会知道解板views目录下的index.ejs?而不是其它目录下的文件,或者后其它后缀名的文件?
      原因就是app.js中的设置:
    app.set('views', path.join(__dirname, 'views'));app.set('view engine', 'ejs');
      而这两个参数在index.ejs中可以使用,那么加上ejs的部分,就会返回最终生成的页面展现!
      res.send("req.host获取主机名,req.path获取请求路径名!");

    5.获取url参数 

    url:http://localhost:8888/select?name=a&id=5

    http.createServer(function(request,response){  
            var pathname = url.parse(request.url).pathname;  //pathname => select  
              
            var arg = url.parse(request.url).query;          //arg => name=a&id=5  
            console.log("Request for " + arg );  
            var str = querystring.parse(arg);                //str=> {name:'a',id:'5'}  
              
            var arg1 = url.parse(request.url, true).query;   //arg1 => {name:'a',id:'5'}  
            console.log("Request for " + arg1 );  
              
            var name = querystring.parse(arg).name;         //name => a  
            console.log("name = "+name);  
      
            console.log("Request for " + pathname + " received.");  
    }).listen(8888); 
  • 相关阅读:
    [Java入门] 从键盘输入两个整数,求最小公倍数并输出
    【C#食谱】【面食】菜单3:用泛型替代ArrayList
    C# Stable Sort(稳固排序)
    【C#食谱】【面食】菜单4:List和LinkedList性能比较
    一个非常酷的应用:修改“开始”菜单的显示文本
    我的第一个5年计划
    C#语言重要常识
    决定执行力的49个细节
    .NET资源链接
    标准表达式中数据类型不匹配(Access 时间格式)
  • 原文地址:https://www.cnblogs.com/labihua/p/4484483.html
Copyright © 2020-2023  润新知