Если мы рассмотрим общие сценарии, в которых может быть выбрано это исключение, доступ к свойствам с объектом вверху.
Пример:
string postalcode=Customer.Address.PostalCode;
//if customer or address is null , this will through exeption
здесь, если адрес равен нулю, то вы получите NullReferenceException.
Итак, в качестве практики мы всегда должны использовать проверку нуля, прежде чем обращаться к свойствам в таких объектах (особенно в общих)
string postalcode=Customer?.Address?.PostalCode;
//if customer or address is null , this will return null, without through a exception
ваш сервер node.js работает на порту, определенном в конце скрипта. Иногда 3000. но может быть что угодно. Правильный способ доступа других - это, как вы говорите ...
http: //your.network.ip.address: port / , например. http://192.168.0.3:3000
проверьте, что у вас есть правильный порт - и IP-адрес в сети - не интернет-ip.
В противном случае , возможно, порты блокируются вашим маршрутизатором. Попробуйте использовать 8080 или 80, чтобы обойти это - в противном случае повторно настройте маршрутизатор.
Порт, вероятно, заблокирован локальным брандмауэром или маршрутизатором.
Но есть простое решение, для которого вам не нужно возиться с правилами брандмауэра, запускать узел как привилегированный процесс для обслуживания на порту 80 и т. Д. ...
Проверьте Localtunnel . Его отличный скрипт / сервис Ruby, который позволяет вам сделать любой локальный порт доступным в Интернете в считанные секунды. Это определенно не полезно для производственной установки, но, чтобы опробовать игру с коллегами, она должна работать нормально!
Убедитесь, что сервер запущен, либо с помощью «npm start», либо «nodemon» в окне командной строки.
Столкнулась с аналогичной проблемой с моим Угловым Node Server (v6.10.3), который настроен в WIndows 10. http://localhost:4201
отлично работал в localhost. Но http://{ipaddress}:4201
не работает на других машинах в локальной сети.
Для этого я обновил ng serve
, как это
//Older ng serve in windows command Prompt
ng serve --host localhost --port 4201
//Updated ng serve
//ng serve --host {ipaddress} --port {portno}
ng serve --host 192.168.1.104 --port 4201
. После выполнения этой модификации можно получить доступ к моему приложению в другие машины в сети bt, вызывающие этот URL
http://192.168.1.104:4201
//http://{ipaddress}:4201
И не забудьте изменить в Index.html следующий код:
<script src="http://192.168.1.4:8000/socket.io/socket.io.js"></script>
<script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
var socket = io.connect('http://192.168.1.4:8000');
Удачи!
У меня был тот же вопрос и я решил проблему. В моем случае брандмауэр Windows (а не маршрутизатор) блокировал ввод / вывод V8 на хост-машине.
Я предполагаю, что «Evented I / O для V8 Javascript» - это процесс ввода-вывода, который node.js связывается с внешним миром, и нам нужно его освободить прежде чем он сможет отправлять пакеты за пределы локального компьютера. После включения этой программы для связи через брандмауэр Windows я мог бы использовать любые номера портов для прослушивания.
var http = require('http');
http.createServer(function (req, res) {
}).listen(80, '127.0.0.1');
console.log('Server running at http://127.0.0.1:80/');
У меня была эта проблема. Решение состояло в том, чтобы разрешить node.js через брандмауэр сервера.
По умолчанию узел будет запускаться на каждом IP-адресе, выставленном хостом, на котором он запущен. Вам не нужно ничего особенного делать. Вы уже знали, что сервер работает на определенном порту. Вы можете доказать это, используя этот IP-адрес в браузере на этом компьютере:
http://my-ip-address:port
Если это не сработало, возможно, ваш IP-адрес неверен.