के साथ नहीं चल रहा है मैं node.js + express और iisnode के साथ कुछ प्रयोग कर रहा हूं। मैं निम्नलिखित बहुत ही सरल अनुप्रयोग, C:\tsapp-deploy\tsappsvr\TestExpress\0.0.0
में स्थित है:नोड.जेएस + एक्सप्रेस आधारित ऐप iisnode
app.js:
var express = require('express');
var app = express();
app.use(express.static(__dirname + "/public"));
var port = process.env.PORT || 2709;
app.listen(port, function() {
console.log('Listening on port ' + port);
});
package.json:
{
"name": "TestExpress",
"version": "0.0.0",
"private": true,
"dependencies": {
"express": "3.x"
}
}
web.config:
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="app.js" verb="*" modules="iisnode" />
</handlers>
</system.webServer>
</configuration>
सार्वजनिक/index.html:
<!doctype html>
<html>
<head>
<script language="javascript" type="text/javascript" src="js/jquery.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
console.log("READY!");
$("#hello").html("Hello, World!");
});
</script>
</head>
<body>
<h1 id="hello" style="text-align:center;"></h1>
</body>
</html>
मेरा कॉन्फ़िगरेशन है: विंडोज 8.1, आईआईएस 8; iisnode संस्करण 0.2.11, नोड संस्करण v0.10.28।
कमांड लाइन (C:\tsapp-deploy\tsappsvr\TestExpress\0.0.0>node app.js
) से लॉन्च होने पर, ऐप अपेक्षित रूप से चलता है: ब्राउज़र में, मैं http://localhost:2709/
पर जाता हूं और "हैलो, वर्ल्ड!" देखता हूं।
मेरा आईआईएस वर्तमान में अन्य नोड.जेएस-आधारित अनुप्रयोगों को चला रहा है जो समान स्थानों से एक्सप्रेस का उपयोग नहीं कर रहे हैं (यानी C:\tsapp-deploy\tsappsvr\appname\x.y.z\index.js
से), इसलिए मुझे लगता है कि इसे सही तरीके से कॉन्फ़िगर किया जाना चाहिए, लेकिन जब मैं ब्राउज़र से इस ऐप को चलाने की कोशिश करता हूं, टाइपिंग http://localhost/tsappsvr/TestExpress/0.0.0/app.js
मुझे क्रोम और फ़ायरफ़ॉक्स में 404 नहीं मिला (आईई में) या "/tsappsvr/TestExpress/0.0.0/app.js" प्राप्त नहीं हो सकता है।
मुझे लगता है कि समस्या मेरे web.config में हो सकती है, लेकिन मैं यह नहीं समझ सकता कि मेरे ऐप को काम करने के लिए इसे कैसे बदला जाए। मैंने web.config में कई बदलावों की कोशिश की है जैसा कि समान प्रश्नों के अन्य उत्तरों में सुझाया गया है, लेकिन अभी तक कोई सफलता नहीं है। कोई सुझाव?
अग्रिम धन्यवाद।
धन्यवाद डेविड, मेरे पास यूआरएल-रीराइट एक्सटेंशन स्थापित नहीं था। अब मेरे पास है और मैंने rewrite नियम को web.config द्वारा जोड़ा है, लेकिन अभी तक कोई भाग्य नहीं है। मैं केवल अपने app.js को बदलने के जवाब में प्रतिक्रिया प्राप्त करने के लिए सफल हूं: 'var express = requ ('express'); var http = आवश्यकता ('http'); var app = express(); ऐप.यूज (फ़ंक्शन (रिक, आरएस, अगली) { res.send ('हैलो, वर्ल्ड!'); }); var सर्वर = http.createServer (ऐप); var port = process.env.PORT || 2709; server.listen (पोर्ट); ', लेकिन जब मैं' app.use ("/ static", express.static (__ dirname + '/ public') जैसे कुछ कोशिश करता हूं); 'मेरा ऐप कैच-ऑल मिडलवेयर में गिरता रहता है। – eca