NodeJS - 如何为后端编写前端?

时间:2018-02-21 11:25:16

标签: javascript node.js

编辑:我编辑整个问题更准确。

所以我用这个撞到了墙上:

SERVER.JS

const express = require('express');
const app = express();
//const app = require('express')();
const cors = require('cors')
const bodyParser = require('body-parser');

app.use(express.static(__dirname + '/public'));
//Enable CORS
app.use(cors());

const polls = [
  {
   ... 
  }
];

//Enable CORS
app.use((req, res, next) => {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

app.use(bodyParser.json());

app.get('/polls', (req, res) => {
  let result = {polls:polls.map(function(p){
    return {id: p.id, title: p.title};
  })};
  res.json(result);
});


app.get('/polls/:id', (req, res) => {
  let id = req.params.id-1;
  res.json(polls[id]);
});

那么为什么app.use(express.static(...))不能正常工作呢?我尝试过这样的事情:

CONTROLLE.JS

var app = angular.module('app',[]);

app.controller('AppCtrl',['$scope','$http',function($scope,$http) {
  console.log("hello");


  var polls = function() {
    $http.get('/polls').then(function(response) {
      $scope.result = response;
    });
  };
}]);

但是我甚至无法得到console.log(“你好”)。有帮助吗?如果没有在server.js中编写“app.use(express.static ...)”,有人会告诉我如何做到这一点,我将不胜感激。或者甚至可以在不添加express.static(或者其他任何内容到server.js)的情况下获取结果映射?

1 个答案:

答案 0 :(得分:0)

您可以选择独立的独立前端网络应用或移动应用,这将使用您的/thingy API,例如使用Javascript,您可以使用$ http来调用API并获取数据并在网页上显示。这可以使用Angularjs或纯Javascript和HTML进行开发

  

OR

您可以使用Pug(Jade)之类的模板引擎。使用这种模板,您可以使用res.render(index.pug, {data: result})渲染Pug文件,在index.pug文件中,您可以访问从渲染函数传递的任何数据。

希望这会有所帮助:)