所以这更像是一个开放式问题:我已经开始使用节点,而且我一直在为练习创建命令行应用程序。这些应用程序中的大多数采用命令行参数并向API发出http请求,并根据传递的参数提供结果。问题是,我希望这些程序具有有用的前端接口,以便结果不仅仅通过命令行终端显示。有没有一种简单的方法来实现这一目标?这对Express来说有用吗?
答案 0 :(得分:1)
或许更全面,这就是表达的目的,这就是路由为您做的事情 - 以便您的浏览器可以定向到默认(例如index.html)页面或特定页面或服务。如果您将存储在/ HTML文件夹中的基本html页面呈现给用户,那么您的应用程序中可能会有以下类型的代码:
var express = require('express');
var app = express();
app.engine('html', require('ejs').renderFile);
app.use(express.static(__dirname + '/HTML'));
后跟一系列app.get('path/from/browser')
和/或app.post('path/from/broswer')
语句,告诉您的nodejs服务器在向应用程序发送各种get和post命令时该怎么做。
随着您的应用变得越来越复杂,您可能需要将路由器服务视为构建应用程序代码和相关服务的一种方式。
您还需要启动一个http服务器,这样浏览器才能真正与服务器通信。您可以通过执行以下代码以非常简单的方式执行此操作:
var cfenv = require('cfenv');
var appEnv = cfenv.getAppEnv();
app.set('port', appEnv.port);
var server = app.listen(app.get('port'), function() {console.log('Listening on port %d', server.address().port);});
在这个简单的示例中,您的应用现在使用3种新服务:express,ejs和cfenv。您可以使用标准的npm安装过程将其添加到本地应用程序中,以便您可以使用它们。从您的应用程序根文件夹,您将执行npm install --save express
,重复三个新服务中的每一个。