Ожидание localhost при попытке подключения к node js серверу - PullRequest
0 голосов
/ 23 марта 2020

когда я запускаю это, я должен иметь возможность получить mysite на localhost: 3000. но когда я go на localhost: 3000 он не загружается. chrome все еще показывает ожидание localhost. Это код. Это простой node js блог, который использует mon go db. Я получил это от этого github https://github.com/pankajwp/node-js-blog

Это код для сервера. Пожалуйста, помогите, я добавлю свои учетные данные mongodb в mon goose .connect.

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

var port = process.env.PORT || 3000;
var expressLayouts = require('express-ejs-layouts');
var mongoose = require('mongoose');
mongoose.connect('');


var Schema = mongoose.Schema;

app.use('/assests',express.static(__dirname + '/public'));
app.use(expressLayouts);

app.use((req, res, next) => {
        res.locals.baseUrl = req.baseUrl;
     next();
});

// by default express will look for static files inside the filder called views
app.set('view engine', 'ejs');


// Controllers
var pageController = require('./controllers/pageController');
var postController = require('./controllers/postController');
var adminController = require('./controllers/adminController');
var randomController = require('./controllers/randomController');

randomController(app);
adminController(app, Schema, mongoose);
postController(app, Schema, mongoose);
pageController(app, Schema, mongoose);

// Listen
app.listen(port);
console.log('Listening on localhost:'+ port);

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

Попробуйте:

const express = require('express');
const ejs = require('ejs');
const expressLayouts = require('express-ejs-layouts');
const mongoose = require('mongoose');

const app = express();
const port = process.env.PORT || 3000;

  //Create Object like this
  const Schema = new mongoose.Schema({
     //your properties name goes here like:
      name: {
         type:String
    }
   });

   app.use('/assests',express.static(__dirname + '/public'));
   app.use(expressLayouts);

    app.use((req, res, next) => {
      res.locals.baseUrl = req.baseUrl;
      next();
     });


   // by default express will look for static files inside the filder called views
     app.set('view engine', 'ejs');


 // Controllers
   var pageController = require('./controllers/pageController');
   var postController = require('./controllers/postController');
   var adminController = require('./controllers/adminController');
   var randomController = require('./controllers/randomController');

    randomController(app);
    adminController(app, Schema, mongoose);
    postController(app, Schema, mongoose);
    pageController(app, Schema, mongoose);

//db connection
  mongoose
    .connect('url goes here, ({useUnifiedTopology: true, useNewUrlParser:true}))
    .then(() => console.log('MongoDB connected!!!'))
    .catch(err => console.log(err));

 app.listen(port, (req, res) => console.log(`Server is running at ${port}`));
0 голосов
/ 23 марта 2020

Следующие данные неверны

// Listen
app.listen(port);
console.log('Listening on localhost:'+ port);

Сразу после вызова listen приложение не сразу прослушивает указанный порт.

Код должен выглядеть следующим образом

app.listen(port, function() {
    console.log(`Listening on localhost: ${port}!`);
})

Что здесь происходит, прослушивание порта является асинхронной задачей. Он принимает некоторый обратный вызов, чтобы сообщить вам, каково состояние вашего прослушивания порта. В случае успеха вызывается обратный вызов.

То, что делал ваш код, независимо от того, успешно ли прослушивается порт, всегда печатает Listening on localhost: xxxx.

Пример, взятый непосредственно из Express Привет, мир .

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