如何解决IIS10上的IISNode Express提供500.1001错误
我设法用静态HTML设置了一个React前端。现在,我想与Node JS Express服务器通信。 因为我不想只是npm启动Node应用程序(因为它崩溃了,它已经停止了),所以我已经根据文档安装了IISnode。我已将所有内容放入try / catches中,但iisnode日志中没有弹出错误。
该应用程序确实已启动并运行,但是当我尝试导航到GET路线时得到500.1001。 日志记录一直进行到“服务器在端口上侦听”,但未进入/ api / users / test。
看来NodeJS是从每次调用服务器开始的。
web.config:
<configuration>
<system.webServer>
<!-- indicates that the hello.js file is a node.js application
to be handled by the iisnode module -->
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="api">
<match url="api/*" />
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
<!-- exclude node_modules directory and subdirectories from serving
by IIS since these are implementation details of node.js applications -->
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>
<directoryBrowse enabled="false" />
<tracing>
<traceFailedRequests>
<add path="*">
<traceAreas>
<add provider="ASP" verbosity="Verbose" />
<add provider="ISAPI Extension" verbosity="Verbose" />
<add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket" verbosity="Verbose" />
</traceAreas>
<failureDefinitions timeTaken="00:01:00" statusCodes="400-999" verbosity="Error" />
</add>
</traceFailedRequests>
</tracing>
</system.webServer>
</configuration>
server.js:
require('rootpath')();
const express = require('express');
const app = express();
const cors = require('cors');
const bodyParser = require('body-parser');
const jwt = require('_helpers/jwt');
const errorHandler = require('_helpers/error-handler');
var winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.Console(),new winston.transports.File({ filename: 'combined.log' })
]
});
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(cors());
// use JWT auth to secure the api
app.use(jwt());
// api routes
app.use('/api/users',require('./users/users.controller'));
// global error handler
app.use(errorHandler);
logger.info("hi");
// start server
const port = process.env.NODE_ENV === 'production' ? 4001 : 4001;
try{
const server = app.listen(port,function () {
logger.info('Server listening on port ' + port);
});
}
catch(exception){
logger.info("Error on init");
logger.info(exception)
}
users.controller:
const express = require('express');
var winston = require('winston');
const router = express.Router();
logger.info("Using controller");
router.get('/api/users/test',test);
module.exports = router;
function test(req,res,next){
logger.info("entering test");
res.send('Hello World!')
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。