nodejs:Express学习笔记(1)

    xiaoxiao2021-03-26  29

    过年的时候学习了一下Express,web框架种类感慨真是十分多,能用得舒服挖坑不少。这个很大程度和业务有关。能够用好,花费不少时间。目前因为有项目需要。只能在这块和php多编写多一点才行。

    Express 是nodejs下一个web开发框架,使用它做网站和web相关的服务对一个全站而言十分容易。不过在学习一个框架时候,这个框架要安装配套很多才能算用得熟悉。npm这种包管理器好处很明显,想要就加进来,不好的地方。这么多,对刚接触是一个新手需要挖坑的地方,还完全没概念,要用那些配搭。不知道如何去搭配

    查看了一下视频教程。真正能够用熟悉了,还要了解web很多基础,模板引擎,ejs css,单纯express这个框架还要安装其他库,像redis,session,其他中间件,芒果DB 和mysql,还有很多还没知道。

    用到的库还有session,上传图片类。总之比较多,nodejs有个好处是对全栈开发和前端配合得比较好。这一点是比较有优势。不好的地方,es6这个标准,查看了一下特性新增比较多。接触异步编程,还要了解es6的一些用法,用起来比较吃力理解这些。搞不懂js要学哪些。

    记录一下一些笔记

    1.修改成Html引擎模板

    express 在默认模板是jade,代码提示没那么友好。要修改ejs可以间接地使用html来写。ejs也非常方便注入模板中去。修改一些里面的代码,可以变成html了。

    var engine = require('ejs-mate'); app.engine('html', engine); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'html');

    2.路由文件可以一个就行

    创建Express模板的时候,有一个index.js和user.js文件,观看了一些视频教程,其实用一个web_routes.js 可以在里面编写。将一些定义的路由都写在这里就好了。

    3.编写Controller模块分散路由里面的功能

    为了简化路由文件的简洁性,这部分只是定义get post操作,实际上的逻辑会交给另外一个模块处理。Controller控制器去处理这块。

    var express = require("express"); var router = express.Router(); var Index = require("../controller/IndexController"); var Sign = require("../controller/SignController"); router.get("/",Index.index); router.get("/about",Index.about); router.get("/signin",Sign.signin); module.exports = router;

    路由回调的函数,可以将其托管到其他地方书写,用于处理逻辑功能。 显示页面,查询数据,和数据库连接,返回列表数据等。

    /** * IndexController.js Created by Administrator on 2017/1/29. */ exports.index = function (req, res) { res.render('Index/index.html',{title:"express"}); } exports.about = function (req, res) { res.render('about.html'); }

    这样看起了就像一个静态类引用那些方法。

    4.使用ejs-mate

    express可以配合ejs用起来比较方便,可以在网页那里编写一下js语句,循环,判断等。当在controller 控制器处理好的数据逻辑后,可以给其html模板传递一些变量过去,方便地使用将变量和Html结合一起。配合条件语句。

    其实这个处理还是比较古老一点,但还是凑效。php也会这样子。ejs用起来不错。

    <% if(x>6) {%> <div>我看到了</> <%}%>

    5.结合redis 和mongodb

    暂时还没用到那么高级 的地方!这块观看了一些视频有讲解,真的用熟悉了,还是很不错。挖潜一个web框架的所有优缺点。

    6.使用locals 做全局变量

    在一些情况下,项目需要定义全局的变量来使用。而express提供了这个机制。可以使用如下的方法来获取

    var express = require('express'); var app = express(); app.locals.message= "定义一个全局变量";

    这个message变量的值就可以在模板引擎中使用

    a.html里面可以这样编写 引用其变量。

    <div class="alert alert-error"> <strong><%=message%></strong> </div>

    7.使用eventproxy

    npm install eventproxy –save 安装这个事件代理,可以监听事件处理事务。

    eventproxy 事件监听

    var eventproxy = require('eventproxy'); var ep = new eventproxy(); ep.on('error', function(msg){ res.render('reg', {error: msg}); }) ep.emit('error', '注册信息错误');//发送事件 //或者使用all监控多个事件 ep.all('success', 'cout', function(result, allcout){ }

    嵌入模板中的变量,用于错误的时候将这部分div显示出来。 当中结合了bootstracp的样式。

    <% if(typeof(error) != 'undefined' && error){%> <div class="alert alert-error"> <p><%=error%></p> </div> <% }%>
    转载请注明原文地址: https://ju.6miu.com/read-663177.html

    最新回复(0)