[尝试连接到节点js服务器时等待本地主机

问题描述 投票:0回答:2

当我运行此命令时,我应该能够在localhost:3000上获得mysite。但是当我转到localhost:3000时,它没有加载。 chrome仍显示正在等待本地主机。这是代码。这是一个使用mongo db的简单节点js博客。我是从这个github https://github.com/pankajwp/node-js-blog

获得的

这是服务器的代码。请帮忙我将我的mongodb凭证添加到mongoose.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);
javascript node.js mongodb express mongoose
2个回答
0
投票

以下问题是错误的

// 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 Hello world


0
投票

尝试此:

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}`));
© www.soinside.com 2019 - 2024. All rights reserved.