GVKun编程网logo

浅谈Nodejs应用主文件index.js(nodejs 桌面应用)

17

本文的目的是介绍浅谈Nodejs应用主文件index.js的详细情况,特别关注nodejs桌面应用的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解浅谈Nodejs应用

本文的目的是介绍浅谈Nodejs应用主文件index.js的详细情况,特别关注nodejs 桌面应用的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解浅谈Nodejs应用主文件index.js的机会,同时也不会遗漏关于node.js – layout.ejs不适用于Heroku中的NodeJS应用程序、node.js – NodeJS 0.10.25(Ubuntu 14.04)和NodeJS 4.1(从NodeJS.org Source编译)之间的差异、node.js – NodeJS应用程序中功能自动化的CodeCoverage、node.js – NodeJS应用程序无法从Zuul API网关访问的知识。

本文目录一览:

浅谈Nodejs应用主文件index.js(nodejs 桌面应用)

浅谈Nodejs应用主文件index.js(nodejs 桌面应用)

前言

经过之前的文章 《浅谈Nodejs应用的主文件index.js的组成部分》 ,终于认识了 Node 妹子的容颜,然后好像上呀<( ̄︶ ̄)>。呦西~这次让本屌在她胴体上游走一番,想想也是不错滴。嗯哼,YY到此为止。

正文

这篇文章主要以组成部分为单位了解一下 index.js 这个主文件...皮肤有多滑( ̄▽ ̄)~

既然之前说过了index.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'');

其实啊,依赖模块就是字面的意思。

用前端工程师的话来说,就是$("#id").attr("class","active")这句代码没有Jquery就转不起来。

用动物的话来说,没有食物就活不下去了。

用本屌的话来说,没有妹子也活不下去了。

嗯哼~综上所述,依赖就是 为接下来要做的事做好能完成该事的准备 。所以上面那些“拼音”都是扮演这种角色的..

二、设置相关配置

献上该组相关代码:

// 视图引擎设置
app.set(''views'', path.join(__dirname, ''views''));
app.set(''view engine'', ''jade'');

额..就两行代码,胸比较小(  ̄﹏ ̄),毕竟萝莉嘛,啊哈哈哈。

上面两行代码就是设置试图目录并设置 jade 为试图引擎。设置的多少取决于你要用哪些模块,有的模块也有默认设置,但为了自己编写方便,肯定会设置成自己喜欢的样子。

三、中间件

//中间件
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'')));

中间件,严格来说index.js中每一行都是中间件,我估计好多兄弟虽然知道中间件这个词,但还是不了解到底是什么意思,它主要是干嘛的。

所以,本屌亲自着手画了一幅宇宙仅有的一张图:

我相信聪明的人一下就能看懂了,毕竟本屌的画拿出去卖也能值个5毛钱。

正经话:左边大箭头是指代码执行顺序,谁都知道 Js 是从上往下执行的,这里为了好解释中间件,把大箭头看成水流。

而在水流往下流的过程中,有个类似滤网的东西在中间卡了一层,本屌突然想到了处女膜是不是也这样(啊呸,思想又不正了 ̄▽ ̄)。

黑色的滤网,就是上面那段代码,中间件的作用就是在执行主线代码过程前、过程中、过程后的警察、门卫或者引导者。举个栗子,比如使用 bodyParser 中间件,它的作用就是解析 HTTP 请求的 body 数据解析,方便在路由中使用, cookie-parser 也是一样的道理。

在图中两个滤网中间部分,一般为路由,由它来负责返回客户端想要的页面。

这时候,眼尖的就问了,下面那个中间件为什么是红色的?而且为什么要放在路由后面执行?

问的好!我正要说呢。 熟悉Node开发的小伙伴都知道,大部分中间件一般写在路由之前,但是有时候避免不了一些不确定的错误,比如用户访问的页面不存在怎么办?开发版本错误或者正式版本错误了怎么办? 这个时候就轮到“红色”中间件出场了,没错,它主要负责善后的,一般用来处理可能发生的错误。

四、路由

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

路由可是个好人啊,客户端只需发送请求,路由就会根据请求 url 尽力的去帮你解决请求,它可以用不同的方式( get 、 post 、 put 、 del ...)去处理数据或者返回你想要的页面。总之是个有问尽力回的好银~ 其实路由也是中间件,只是它应该作为一个独立的组成部分更好。

五、开启服务

//启动服务
http.createServer(app).listen(app.get(''port''), function () {
  console.log(''服务启动成功,端口为:''+app.get(''port''));
});

啊哈哈哈哈,终于到高潮了,Node妹子快不行了<( ̄︶ ̄)>

额。。。好像也没什么好说的,就是开启服务了。。。。。。好吧,开启服务前,要通过 http.createServer() 创建一个服务,然后调用 listen() 方法即可开启。这样整个应用就开启啦~~~ 本屌那幅神图中的大箭头也可以顺畅的捅进去了。。进去了。。去了。。了。

您可能感兴趣的文章:
  • nodejs实现遍历文件夹并统计文件大小
  • nodejs文件操作模块FS(File System)常用函数简明总结
  • NodeJS学习笔记之FS文件模块
  • nodejs 实现模拟form表单上传文件
  • Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
  • nodejs批量修改文件编码格式
  • Nodejs如何复制文件
  • NodeJS Web应用监听sock文件实例
  • 实例详解Nodejs 保存 payload 发送过来的文件
  • NodeJs读取JSON文件格式化时的注意事项
  • NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
  • NodeJS使用formidable实现文件上传
  • NodeJS遍历文件生产文件列表功能示例

node.js – layout.ejs不适用于Heroku中的NodeJS应用程序

node.js – layout.ejs不适用于Heroku中的NodeJS应用程序

我有通常的nodejs express app …

var express = require('express');

var app = express.createServer(
    express.bodyParser()
);

app.configure( function () {
    app.set('views',__dirname + '/views');
    app.set('view engine','ejs');
    app.use("/public",express.static(__dirname + '/public'));
});

app.get('/',function (req,res) {
    res.render('index');
});

我在/ views文件夹中有一个index.ejs和layout.ejs:

layout.ejs:

<!doctype html>
<html lang="en" manifest=""><head>
    <title>jQuery Plugin Demo</title>
</head>
<body>
    <div>
        <%- body %>
    </div>
</body>
</html>

index.ejs:

Hello world

index.ejs只呈现“Hello world”文本而没有周围的layout.ejs包装器. ejs正在运作.它能够找到正确的.ejs模板,但它只是忽略了布局.我也试过明确地将布局文件添加到应用程序..

app.set('view options',{ layout:'layout.ejs' });

所有这些在本地工作正常,但在Heroku上没有.这是我的package.json:

{
  "name": "in1-test","version": "0.0.1","author": "Iatek","dependencies": {
    "express": ">=2.5.x","ejs": ">=0.7.x"
  },"engines": {
    "node": "0.6.x"
  }
}

为什么布局上没有喜悦?谢谢

解决方法

当您部署到Heroku时,它会为所有依赖项执行npm安装;因为你已经声明了明确的> = 2.5.x它会安装最新的3.0.0_betax. Express 3不支持ejs中的布局(尚未).

要修复删除“> =”并指定本地版本中的快递版本.

node.js – NodeJS 0.10.25(Ubuntu 14.04)和NodeJS 4.1(从NodeJS.org Source编译)之间的差异

node.js – NodeJS 0.10.25(Ubuntu 14.04)和NodeJS 4.1(从NodeJS.org Source编译)之间的差异

我现在对这些版本号感到困惑.我正在计划一个新项目,我想知道这两个版本之间的差异.这两个版本似乎是一个很大的跳跃,但现在我找不到差异.

使用4.1版是否安全?

感谢您的任何帮助!

解决方法

跳转到v4是与io.js合并的结果,取自 the blog

Node.js v4.0.0 contains V8 v4.5,the same version of V8 shipping with
the Chrome web browser today. This brings with it many bonuses for
Node.js users,most notably a raft of new ES6 features that are
enabled by default including block scoping,classes,typed arrays
(Node’s Buffer is Now backed by Uint8Array),generators,Promises,
Symbols,template strings,collections (Map,Set,etc.) and,new to V8
v4.5,arrow functions.

至于旧版本和新版本行之间的更改,请检查you need to look here是否符合“安全”标准.

我建议您使用nvm安装节点(如果您还没有),只需使用这两个版本,看看您现在是否可以轻松切换.

node.js – NodeJS应用程序中功能自动化的CodeCoverage

node.js – NodeJS应用程序中功能自动化的CodeCoverage

我正在寻找一个工具的指针,可以帮助我确定nodeJs中的功能自动化覆盖. (这不是单元测试!).

我为NodeJS编写的前端应用程序运行了很多selenium自动化.但我想知道这些自动化的功能覆盖范围.

(我之前使用jacoco for java)

解决方法

正如其中一条评论所述,istanbul是一个非常好的,非常通用的覆盖工具.它充当节点进程和脚本之间的中间人,因此只要您在节点运行时执行某些操作,它就应该执行您想要的操作.我不确定你是如何运行你的硒测试但我像这样运行mocha:
node ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- test/*-test.js
#or simply:
./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- test/*-test.js

尽管mocha通常作为自己的“命令”运行,但它可以“馈送”到istanbul并且覆盖率以这种方式打印出来.因此,在您的情况下,无论您使用什么命令来运行节点/ selenium中的前端测试都可以在istanbul中运行.正如我所说,这是一个非常通用的过程,可以应用于node.js中运行的任何东西.

现在我并没有真正掌握Selenium的经验,但我知道它有点像Rube Goldberg system,有很多相互关联的过程(有些可能在不同的机器上).如果您正在寻找能够捕获前端,后端和测试代码(或在浏览器中运行的前端代码,从后端代码提供)的内容,我不确定是否存在(“用NodeJS编写的前端应用程序”)是我的关键所在.)

node.js – NodeJS应用程序无法从Zuul API网关访问

node.js – NodeJS应用程序无法从Zuul API网关访问

我创建了一个Node.js(使用Expressjs) microservice并使用 eureka-js-client将其注册到Eureka discovery Server.

我已经在Eureka注册了一些基于Java的微服务,并通过Zuul API Gateway使用它.

当我尝试通过API网关在我的Node.js微服务上调用特定端点时,它会抛出一个错误:

Caused by: com.netflix.client.ClientException: Load balancer does not 
have available server for client: tryout

注意:tryout是我的演示服务应用程序的名称.

解决方法

我有同样的问题设置vipAddress与应用程序名称相同

vipAddress: your_app_name

在eureka客户端配置解决了它.

关于浅谈Nodejs应用主文件index.jsnodejs 桌面应用的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于node.js – layout.ejs不适用于Heroku中的NodeJS应用程序、node.js – NodeJS 0.10.25(Ubuntu 14.04)和NodeJS 4.1(从NodeJS.org Source编译)之间的差异、node.js – NodeJS应用程序中功能自动化的CodeCoverage、node.js – NodeJS应用程序无法从Zuul API网关访问等相关知识的信息别忘了在本站进行查找喔。

本文标签: