Ошибки NPM в веб-приложении Node.js - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь создать веб-приложение из шаблона.Эта проблема заключается в том, что при запуске приложения появляется сообщение «Невозможно отобразить страницу, поскольку произошла внутренняя ошибка сервера».Я провел небольшое исследование и, похоже, у меня возникли проблемы с установкой моего узла.

Я попытался переустановить npm, текущая версия 1.4.28.Журнал ошибок показывает:

0 информация, с которой он работал, если он заканчивается ok 1 verbose cli ['node', 1 verbose cli 'D: \ Program Files (x86) \ npm \ 1.4.28 \ node_modules \ npm\ bin \ npm-cli.js ', 1 verbose cli' init '] 2 информация с использованием npm@1.4.28 3 информация с использованием node@v0.10.40 4 ошибка: ошибка: EINVAL, недопустимый аргумент 4 ошибка в новом сокете (net.js: 157: 18) 4 ошибка в process.stdin (node.js: 693: 19) 4 ошибка при чтении (D: \ Program Files (x86) \ npm \ 1.4.28 \ node_modules \ npm \ node_modules \ read \ lib \read.js: 18: 36) 4 ошибка в PromZard.prompt (D: \ Program Files (x86) \ npm \ 1.4.28 \ node_modules \ npm \ node_modules \ init-package-json \ node_modules \ promzard \ promzard.js:214: 3) 4 ошибка в PromZard.L (D: \ Program Files (x86) \ npm \ 1.4.28 \ node_modules \ npm \ node_modules \ init-package-json \ node_modules \ promzard \ promzard.js: 177: 21)Ошибка 4 в PromZard.walk (D: \ Program Files (x86) \ npm \ 1.4.28 \ node_modules \ npm \ node_modules \ init-package-json \ node_modules \ promzard \ promzard.js: 146: 5) 4 ошибка в PromZard.loaded (D: \ Program Files (x86) \ npm \ 1.4.28 \ node_modules \ npm\ node_modules \ init-package-json \ node_modules \ promzard \ promzard.js: 90: 8) 4 ошибка в PromZard.(D: \ Program Files (x86) \ npm \ 1.4.28 \ node_modules \ npm \ node_modules \ init-package-json \ node_modules \ promzard \ promzard.js: 57: 10) 4 ошибка в fs.js: 272: 144 ошибка в Object.oncomplete (fs.js: 108: 15) 5 ошибка Если вам нужна помощь, вы можете сообщить об этом весь журнал, 5 ошибок, включая версии npm и узлов, по адресу: 5 ошибок * Ошибка 1008 * 6 Система Windows_NT 6.2.9200 7 Ошибка команды "узел" "D: \ Program Files (x86) \ npm \ 1.4.28 \ node_modules \ npm \ bin \ npm-cli.js" "init" 8 ошибкаcwd D: \ home \ site \ wwwroot 9 узел ошибки -v v0.10.40 10 ошибка npm -v 1.4.28 11 ошибка syscall uv_pipe_open 12 код ошибки EINVAL 13 ошибка errno 18 14 подробный выход [18, true]

Вот что у меня есть:

Web.config

<configuration>
    <system.webServer>

        <handlers>
            <!-- indicates that the app.js file is a node.js application to be handled by the iisnode module -->
            <add name="iisnode" path="app.js" verb="*" modules="iisnode" />
        </handlers>

        <rewrite>
            <rules>
                <!-- Don't interfere with requests for logs -->
                <rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true">
                    <match url="^[a-zA-Z0-9_\-]+\.js\.logs\/\d+\.txt$" />
                </rule>

                <!-- Don't interfere with requests for node-inspector debugging -->
                <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">                    
                    <match url="^app.js\/debug[\/]?" />
                </rule>

                <!-- First we consider whether the incoming URL matches a physical file in the /public folder -->
                <rule name="StaticContent">
                    <action type="Rewrite" url="public{REQUEST_URI}" />
                </rule>

                <!-- All other URLs are mapped to the Node.js application entry point -->
                <rule name="DynamicContent">
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True" />
                    </conditions>
                    <action type="Rewrite" url="app.js" />
                </rule>
            </rules>
        </rewrite>        
    </system.webServer>
</configuration>

App.js

var express = require('express');
var app = express();


app.use('/node_modules',  express.static(__dirname + '/node_modules'));
app.use('/style',  express.static(__dirname + '/style'));
app.use('/script',  express.static(__dirname + '/script'));

app.get('/',function(req,res){
    res.sendFile('home.html',{'root': __dirname + '/templates'});
})

app.get('/showSignInPage',function(req,res){
    res.sendFile('signin.html',{'root': __dirname + '/templates'});
})

app.get('/showSignUpPage',function(req,res){
  res.sendFile('signup.html',{'root':__dirname + '/templates'})
})

app.listen(3000,function(){
    console.log('Node server running @ http://localhost:3000')
});

Server.js

var http = require('http');

http.createServer(function (req, res) {

    res.writeHead(200, { 'Content-Type': 'text/html' });
    res.end('Hello, world!');

}).listen(process.env.PORT || 8080);

Я былизначально получал результаты из server.js, но я сделал несколько изменений, чтобы попытаться решить проблему и узнать, как я ничего не получаю.Кто-нибудь может определить меня по этой проблеме?

Спасибо

Редактировать: Добавление почтового индекса делает это, создает другой уровень папки, и я получаю сообщение «У вас нет разрешения напросмотреть этот каталог или страницу. 'когда я пытаюсь запустить приложение.

enter image description here

1 Ответ

2 голосов
/ 16 апреля 2019

Вам нужно изменить

app.listen(3000,function(){
    console.log('Node server running @ http://localhost:3000')
});

до app.listen(process.env.PORT);

Единственный способ доступа к лазурному веб-приложению через Интернет - через уже открытые порты HTTP (80) и HTTPS (443);

Я протестировал проект с вашими web.config и app.js. Я столкнусь с той же ошибкой, что и ваша.

enter image description here

После изменения порта прослушивания все работает хорошо. Вы можете обратиться к этой статье , чтобы развернуть приложение nodejs в Azure. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...