简体   繁体   English

具有Node.js的Polymer Web应用程序不显示页面

[英]Polymer web app with Node.js not displaying page

The polymer app that I am working is not being displayed when I run npm start . 运行npm start时未显示我正在使用的聚合物应用程序。 There seem to be no errors on command prompt. 在命令提示符下似乎没有错误。 How do I display my index.html properly? 如何正确显示index.html? I am using Node.js to create a RESTful api to call the news api and the display the news on the web page. 我正在使用Node.js创建一个RESTful api来调用新闻api,并在网页上显示新闻。 The web page is not being displayed at all. 网页根本没有显示。

index.html index.html

<!doctype html>
<html>
  <head>
    <script src="/bower_components/webcomponentsjs/webcomponents.js"/>
    <link rel="import" href="/bower_components/polymer/polymer.html">
    <link rel="import" href="/bower_components/core-icon/core-icon.html">
    <link rel="import" href="/bower_components/paper-input/paper-input-decorator.html">
    <link rel="import" href="/bower_components/paper-icon-button/paper-icon-button.html">
    <link rel="import" href="/bower_components/paper-shadow/paper-shadow.html">
    <link rel="import" href="/bower_components/paper-card/paper-card.html">
    <link rel="import" href="news-api.html">
  </head>
  <body>
    <news-api></news-api>
  </body>
</html>

app.js (Node.js) app.js(Node.js)

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var index = require('./routes/index');
var users = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.engine('.html', require('ejs').__express);
//app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', index);
app.use('/users', users);

// catch 404 and forward to error handler
// app.use(function(req, res, next) {
// var err = new Error('Not Found');
// err.status = 404;
//   next(err);
// });
//
// // error handler
// app.use(function(err, req, res, next) {
//   // set locals, only providing error in development
//   res.locals.message = err.message;
//   res.locals.error = req.app.get('env') === 'development' ? err : {};
//
//   // render the error page
//   res.status(err.status || 500);
//   res.render('error');
// });

app.listen(3000);
module.exports = app;

index.js (Node.js) index.js(Node.js)

"use strict";

var express = require('express');
var NewsAPI = require('newsapi');
var router = express.Router();

let newsapi = new NewsAPI('MYAPIKEY');


/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Hello' });
});

router.get('/trendz_now_global', function(req, res){

  // To query articles
  newsapi.articles({
    source: 'bbc-news', // required
    sortBy: 'top' // optional
  }).then(articlesResponse => {
    res.send(articlesResponse);
  });

});

module.exports = router;

EDIT: Package.json 编辑:Package.json

 {
  "name": "trendz",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "body-parser": "~1.15.2",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "express": "~4.14.0",
    "jade": "~1.11.0",
    "morgan": "~1.7.0",
    "serve-favicon": "~2.3.0",
    "newsapi": "~1.0.0",
    "ejs": "~2.5.2"
  }
}

Please pardon me if I have made some dumb mistakes. 如果我犯了一些愚蠢的错误,请原谅我。 I just started working with Node.js 我刚刚开始使用Node.js

档案结构

You haven't let your app listen to any port. 您尚未让您的应用监听任何端口。 Add the below line just above the last line, then try http://localhost:3000 after npm start . 在最后一行的上方添加以下行,然后在npm start之后尝试http://localhost:3000

Hope you have node app.js in your start command in package.json file. 希望您在package.json文件的启动命令中包含node app.js

app.listen(3000);
module.exports = app;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM