我按照安装Haskell的snap框架的说明进行操作:
http://janrain.com/blog/tutorial-building-a-sample-application-with-haskell-snap-postgresql-and-the-postgresql-simple-snaplet/
Run Code Online (Sandbox Code Playgroud)
执行时
snap init
Run Code Online (Sandbox Code Playgroud)
我获得-bash: snap: command not found(在Mac OSX上),我在安装快照后打开了一个新的终端窗口.二进制文件安装在
/Users/<USER NAME>/Library/Haskell/ghc-7.6.3/lib/snap-0.12.1/bin
Run Code Online (Sandbox Code Playgroud)
当snap init以此路径开头时,snap也可正常工作.但是,此票证(用于Windows cabal安装程序)
http://trac.haskell.org/haskell-platform/ticket/175
Run Code Online (Sandbox Code Playgroud)
表明这不应该发生.当cabal安装新软件包时,它应该将正确的目录添加到路径环境中.运行set | grep "snap"或不set | grep "cabal"返回任何内容 有关如何(自动)将正确的目录添加到PATH环境以供将来安装的任何想法?
以下是Node.js/Express Web服务器的简单示例:
var express = require('express');
var app = express();
app.get('/*', function(req, res){
res.end('Hello, you requested ' + req.url + '.');
});
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)
当它运行时,请求http://localhost:3000/Hello-world将生成响应
Hello, you requested /Hello-world.
Run Code Online (Sandbox Code Playgroud)
要了解中间件,我想重新实现这个服务器,但是使用中间件"获取数据","操纵数据"和"输出数据"包含在单独的函数中.我试图关注,但对于此代码,请求http://localhost:3000/Hello-world没有响应.只有app.get(..)代码似乎执行.
var express = require('express');
var app = express();
// Step 1: get input
app.get('/*', function(req, res){
req['testing'] = req.url;
});
// Step 2: manipulate data
app.use('/*', function(req, res, next) {
req['testing'] = 'Hello, you requested ' + req['testing'];
return next();
});
// Step 3: send …Run Code Online (Sandbox Code Playgroud)