我试图理解我们什么时候需要使用这个应用程序。在我们的node Express中使用
当我在网上搜索时,我在reddit上偶然发现了这个答案,它说明了应用程序之间的区别。获取和应用程序。使用
在此基础上,我总结了以下几点。
app。使用
充当超级路由或中间件?这意味着它在应用程序下面/之后编写的每个路由上都会被调用。使用
?
此外,如果有人能添加更多关于app.use.的信息/练习,我将不胜感激
app.get
路由处理程序应用于GET请求,无论是指定路径还是所有路径:
使用指定的回调函数将HTTP GET请求路由到指定路径。
app。使用
中间件应用于所有请求,包括指定路径或所有路径:
在指定路径上挂载指定的一个或多个中间件函数:当请求路径的基匹配路径时,执行中间件函数。
use
用于将一些逻辑(中间件)应用于特定的路由或整个应用程序,而不管请求方法如何。
>
用于静态路径
//Set static path
app.use(express.static(__dirname + '/public'));
用作路由器
//user
app.use('/', require('./controllers/user'));
用于手机线中间件
//Body-parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));// Body parser use JSON data
用于自定义中间件
// force https
app.use ( (req, res, next) =>{
if (req.secure) {
// request was via https, so do no special handling
next();
} else {
// request was via http, so redirect to https
res.redirect('https://' + req.headers.host + req.url);
}
});
当将ExpressJS与NodeJS一起使用时,您可以将app.get
和app.use
用于几个有用的方面。
初始化应用程序后,如let App=express()
,您可以在下面找到一些示例:
正如您正确指出的,它对于“中间件”非常有用,它将应用于所有GET、POST等。您指出了后记。例如,您只能在获取您想要的“具有用户/通过身份验证”之前使用中间件。
>
指定静态内容的文件夹:
app。使用(express.static(uu dirname)/public”)
包括JSON内容的解析器:
app.use(body Parser.json ());
定义Cookie Parser签名字符串:
app.use(CookieParser(签名文本示例));
不同文件中URL的单独路由器:
app。使用(“/api”,apiRouter)
或
应用程序。使用(“/news”,新闻路由器)
或
应用程序。使用(“/”,siteRouter)
对于自定义错误处理程序:
app。使用(sites404handler)
或
应用程序。使用(globalErrorHandler)
当谈论
应用程序时。得到(…)
您正在指示将通过GET方法访问哪些URL。但您可以在此处使用几个选项:
>
表示你有一个主页:
app.get ("/", 函数(req, res){res.send(Hello world!); });
接受POST请求:
app.post ("/", 函数(req, res){res.send("Hello world!用POST调用."); });
您还可以在另一个文件中将其分隔为“apiRouter.js”,并将其包含在其中:
let router=express。路由器();路由器。路线(“/books”)。get(函数(req,res){res.send(“/api/books/通过路由器调用”);})
请记住,您还有
app选项。集合(…)
。例如,这对于定义视图引擎(如把手(.hbs文件))非常有用。
希望这能有所帮助!
在99%的情况下,当SQL server返回意外错误或文件系统中缺少文件时,我不能做任何合理的事情,我只想记录这种情况并将错误返回给用户。所以我看不出有什么理由应该返回“err”手动展开堆栈,实际上我会丢失stacktrace和上下文,并且更难找到错误的原因。 有没有什么我错过了,所以这种方法不会很好地工作?似乎大多数Go文章都建议不要使用panic/recover,但我不明白为什么。它看起来非常
我尝试在JAVA代码中调用MessageBoxA函数。以下方法有什么问题,以至于我的程序抛出了很多错误? 1-st: run:线程“main”java.lang.ClassFormatError:java.lang.ClassLoader的类文件加载/库/MessageBox中的本机或抽象方法中的代码属性。java.lang.ClassLoader.defineClass(ClassLoader.
问题内容: 我有一个Swing应用程序,我希望将其从意大利面条转换为对Guice使用依赖项注入。使用Guice提供诸如配置和任务队列之类的服务的过程非常好,但是我现在是从应用程序的GUI开始的,不确定如何进行。 该应用程序基本上是,在中带有一堆标签。每个选项卡都是一个单独的子类,该子类列出了各种组件,并且需要服务才能在按下某些按钮时执行操作。 在当前应用程序中,这看起来像这样: 显然,这并不完全遵
我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em
我正在用c开发一个应用程序,我想使用solr来索引sqlite数据库,我在网上搜索了一下,发现我需要使用JNI:http://randr . svbtle . com/experiment-with-embedded-Solr-in-Java-and-c,但是我发现jar有很多问题(我使用了\solr-4.9.0\dist\solrj-lib和\solr-4.9.0\dist和\solr-4.9.
问题内容: 我正在尝试将Hibernate用于多线程应用程序,其中每个线程都检索一个对象并将其插入表中。我的代码如下所示。我每个线程都有本地hibernate会话对象,在每个InsertData中,我都执行beginTransaction和commit。 我面临的问题是很多次我收到“ org.hibernate.TransactionException:不支持嵌套事务” 由于我是hibernate