• Node.js Web开发(一)从零开始


    Node.js不必介绍,已经太火爆了。简单说是用Javascript开发Web服务端,基于Google V8引擎,单线程。不多说从零开始Windows平台下的Node.js的开发之旅。

    环境工具为先

    首先到Node.js的官方网站上下载安装包,一步步安装,现在最新版本为V0.8.12。安装完成后,验证下安装是否成功:打开命令行窗口输入:

    node --version

    获得如下提示,表示安装成功。

    image

    Windows下我使用微软的WebMatrix作为开发工具,WebMatrix提供了Node.js开发时的几种模板,使用跟Visual Studio很接近,非常方便。另外提供了一些扩展的工具,比如Git的扩展工具等等。刚使用时,我还是使用node的命令进行一些操作,不直接使用WebMatrix,WebMatrix只作为编写工具,这样更容易理解。

    安装Express

    我们通过使用Node.js里面的‘http’模块进行http请求、响应的操作,来实现自己的Web框架,这里就不自己造轮子了(自己也没那个水平),使用Node.js比较流行的Web框架“Express”。Node.js提供了很好的包的管理器“npm”,方便的进行包的安装、卸载、更新。

    安装Express:

    npm install –g express

    会出现如下信息:

    image

    验证是否安装成功:

    express –version

    image

    这里简单说下npm,上面的-g代表是全局的,默认npm是进行本地安装。本地安装时,npm会将包安装到当前目录的node_modules目录中,一般情况不可以直接在命令行中使用;全局安装时会将包安装到系统目录中,这样我们就可以在命令行中到处使用。

    Express版的Hello World

    我们通过Express命令创建项目S055:

    Express –t ejs S055

    image

    这里Express提示我们要进入S005里面进行安装项目的依赖项,我们打开package.json:

    {
      "name": "application-name",
      "version": "0.0.1",
      "private": true,
      "scripts": {
        "start": "node app"
      },
      "dependencies": {
        "express": "3.0.0rc5",
        "jade": "*"
      }
    }

    奇怪的是,我发现依赖项里面有“jade”,而我希望使用的ejs来创建的,不知道为什么还是使用了jade(知道的朋友指点下我微笑).

    jade是一种View引擎,我更喜欢使用ejs,方便,简单,这里修改成ejs.

    执行npm install.

    会提示我们:image,ejs跟express安装完成。

    启动Node.js:

    node app

    启动成功后,我们再浏览器中输入http://localhost:3000/,意外发生了:

    image

    提示找不到jade模块,不管他了,把它修改成使用ejs.

    使用ejs

    使用WebMatrix打开网站image,选择刚才创建的目录(也可以直接使用WebMatrix创建Express站点),WebMatrix会自动帮我们检测到是Node.js站点。

    1)打开app.js,修改下视图引擎:

    app.configure(function(){
      app.set('port', process.env.PORT || 3000);
      app.set('views', __dirname + '/views');
      app.set('view engine', 'jade');
      app.use(express.favicon());
      app.use(express.logger('dev'));
      app.use(express.bodyParser());
      app.use(express.methodOverride());
      app.use(app.router);
      app.use(express.static(path.join(__dirname, 'public')));
    });

    将‘View engine’修改成‘ejs’。

    2)删除layout.jade、index.jade,创建layout.ejs、index.ejs.

    layout.ejs:

    <!DOCTYPE html>
    <html>
        <head>
            <title><%=title%></title>
            <link rel="stylesheet" href="/stylesheets/style.css">
        </head>
        <body>
            <%- body%>
        </body>
    </html>

    index.ejs:

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

    这里只是把刚才的jade翻译成了ejs引擎的表现方式,其实大家可以猜下layout.ejs的作用,应该是想作为站点的模板。重新启动下Node.js,刷新下浏览器:

    image

    好像成功了,但是我们查看源,发现不对,没使用模板:

    image

    这里就不继续下去了,留到下一节的了解Express结构后,去解决它。

    总结

    本小节,初步使用了Node.js的Express框架成功创建了站点,但是视图模板还没使用成功,我们在下一节里面初步了解了Express结构之后,再去解决它。

  • 相关阅读:
    3305: Hero In Maze II (优先队列+bfs)
    2016年5月8日 GDCPC省赛总结
    POJ 2361 Tic Tac Toe
    about 字节
    KMP模式匹配
    scau 8616 汽车拉力比赛
    海盗分金--大于半数才成立
    scau 10692 XYM-入门之道
    函数模板和类模板成员函数的定义通常放在头文件中
    c语言运算符优先级巧记
  • 原文地址:https://www.cnblogs.com/Henllyee/p/NodeJs_First.html
Copyright © 2020-2023  润新知