Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度不';我不能和Express和Pug一起工作_Javascript_Angularjs_Express_Pug - Fatal编程技术网

Javascript 角度不';我不能和Express和Pug一起工作

Javascript 角度不';我不能和Express和Pug一起工作,javascript,angularjs,express,pug,Javascript,Angularjs,Express,Pug,我不知道为什么,但我不能强迫你在这里工作。有人知道为什么会这样吗? 我甚至不能用绑定的模型制作一个简单的输入表单。总有{{model}}和这个 文件树 /app.js var express = require('express'); var app = express(); var port = process.env.PORT || 3000; var bodyParser = require('body-parser'); app.use(express.static(__dirn

我不知道为什么,但我不能强迫你在这里工作。有人知道为什么会这样吗? 我甚至不能用绑定的模型制作一个简单的输入表单。总有{{model}}和这个

文件树

/app.js

var express = require('express');
var app = express();
var port = process.env.PORT || 3000;
var bodyParser = require('body-parser');


app.use(express.static(__dirname + '/client'));
app.use(bodyParser.json());
require('./app/routes.js')(app);

app.listen(port, () => {
  console.log('Server listening on port 3000...');
});
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./db/mes.db');
var _ = require('underscore');


module.exports = function (app) {
  app.get('/messages', (req, res, next) => {
    try {
      var messages = [];

      // Some db stuff

      res.json(messages);
    } catch (err) {
      next(err);
    }
  });

  app.set('views', './views');
  app.set('view engine', 'pug');

  app.get('*', (req, res) => {
    res.render('index');
  });
};
angular.module('myViewerController', [])
  .controller('mainController', ['$scope','$http','Messages', function($scope, $http, Messages) {
    $scope.formData = {};
    $scope.loading = true;

    Messages.get()
      .success(function(data) {
        $scope.messages = data;
        $scope.loading = false;
      })
      .error(data => {
      console.log('Error: ' + data);
    });
  }]);
  angular.module('myViewer', ['myViewerController', 'myViewerService']);
angular.module('myViewerService', [])
  .factory('Messages', ['$http', function ($http) {
    return {
      get: function () {
        return $http.get('/messages');
      }
    }
  }]);
var path = require('path');

// .. 

app.get('/', (req, res) => {
    res.render('index', {root: path.join(__dirname, '../client')});
  });
/app/routes.js

var express = require('express');
var app = express();
var port = process.env.PORT || 3000;
var bodyParser = require('body-parser');


app.use(express.static(__dirname + '/client'));
app.use(bodyParser.json());
require('./app/routes.js')(app);

app.listen(port, () => {
  console.log('Server listening on port 3000...');
});
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./db/mes.db');
var _ = require('underscore');


module.exports = function (app) {
  app.get('/messages', (req, res, next) => {
    try {
      var messages = [];

      // Some db stuff

      res.json(messages);
    } catch (err) {
      next(err);
    }
  });

  app.set('views', './views');
  app.set('view engine', 'pug');

  app.get('*', (req, res) => {
    res.render('index');
  });
};
angular.module('myViewerController', [])
  .controller('mainController', ['$scope','$http','Messages', function($scope, $http, Messages) {
    $scope.formData = {};
    $scope.loading = true;

    Messages.get()
      .success(function(data) {
        $scope.messages = data;
        $scope.loading = false;
      })
      .error(data => {
      console.log('Error: ' + data);
    });
  }]);
  angular.module('myViewer', ['myViewerController', 'myViewerService']);
angular.module('myViewerService', [])
  .factory('Messages', ['$http', function ($http) {
    return {
      get: function () {
        return $http.get('/messages');
      }
    }
  }]);
var path = require('path');

// .. 

app.get('/', (req, res) => {
    res.render('index', {root: path.join(__dirname, '../client')});
  });
/client/controller.js

var express = require('express');
var app = express();
var port = process.env.PORT || 3000;
var bodyParser = require('body-parser');


app.use(express.static(__dirname + '/client'));
app.use(bodyParser.json());
require('./app/routes.js')(app);

app.listen(port, () => {
  console.log('Server listening on port 3000...');
});
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./db/mes.db');
var _ = require('underscore');


module.exports = function (app) {
  app.get('/messages', (req, res, next) => {
    try {
      var messages = [];

      // Some db stuff

      res.json(messages);
    } catch (err) {
      next(err);
    }
  });

  app.set('views', './views');
  app.set('view engine', 'pug');

  app.get('*', (req, res) => {
    res.render('index');
  });
};
angular.module('myViewerController', [])
  .controller('mainController', ['$scope','$http','Messages', function($scope, $http, Messages) {
    $scope.formData = {};
    $scope.loading = true;

    Messages.get()
      .success(function(data) {
        $scope.messages = data;
        $scope.loading = false;
      })
      .error(data => {
      console.log('Error: ' + data);
    });
  }]);
  angular.module('myViewer', ['myViewerController', 'myViewerService']);
angular.module('myViewerService', [])
  .factory('Messages', ['$http', function ($http) {
    return {
      get: function () {
        return $http.get('/messages');
      }
    }
  }]);
var path = require('path');

// .. 

app.get('/', (req, res) => {
    res.render('index', {root: path.join(__dirname, '../client')});
  });
/client/core.js

var express = require('express');
var app = express();
var port = process.env.PORT || 3000;
var bodyParser = require('body-parser');


app.use(express.static(__dirname + '/client'));
app.use(bodyParser.json());
require('./app/routes.js')(app);

app.listen(port, () => {
  console.log('Server listening on port 3000...');
});
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./db/mes.db');
var _ = require('underscore');


module.exports = function (app) {
  app.get('/messages', (req, res, next) => {
    try {
      var messages = [];

      // Some db stuff

      res.json(messages);
    } catch (err) {
      next(err);
    }
  });

  app.set('views', './views');
  app.set('view engine', 'pug');

  app.get('*', (req, res) => {
    res.render('index');
  });
};
angular.module('myViewerController', [])
  .controller('mainController', ['$scope','$http','Messages', function($scope, $http, Messages) {
    $scope.formData = {};
    $scope.loading = true;

    Messages.get()
      .success(function(data) {
        $scope.messages = data;
        $scope.loading = false;
      })
      .error(data => {
      console.log('Error: ' + data);
    });
  }]);
  angular.module('myViewer', ['myViewerController', 'myViewerService']);
angular.module('myViewerService', [])
  .factory('Messages', ['$http', function ($http) {
    return {
      get: function () {
        return $http.get('/messages');
      }
    }
  }]);
var path = require('path');

// .. 

app.get('/', (req, res) => {
    res.render('index', {root: path.join(__dirname, '../client')});
  });
/client/service.js

var express = require('express');
var app = express();
var port = process.env.PORT || 3000;
var bodyParser = require('body-parser');


app.use(express.static(__dirname + '/client'));
app.use(bodyParser.json());
require('./app/routes.js')(app);

app.listen(port, () => {
  console.log('Server listening on port 3000...');
});
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./db/mes.db');
var _ = require('underscore');


module.exports = function (app) {
  app.get('/messages', (req, res, next) => {
    try {
      var messages = [];

      // Some db stuff

      res.json(messages);
    } catch (err) {
      next(err);
    }
  });

  app.set('views', './views');
  app.set('view engine', 'pug');

  app.get('*', (req, res) => {
    res.render('index');
  });
};
angular.module('myViewerController', [])
  .controller('mainController', ['$scope','$http','Messages', function($scope, $http, Messages) {
    $scope.formData = {};
    $scope.loading = true;

    Messages.get()
      .success(function(data) {
        $scope.messages = data;
        $scope.loading = false;
      })
      .error(data => {
      console.log('Error: ' + data);
    });
  }]);
  angular.module('myViewer', ['myViewerController', 'myViewerService']);
angular.module('myViewerService', [])
  .factory('Messages', ['$http', function ($http) {
    return {
      get: function () {
        return $http.get('/messages');
      }
    }
  }]);
var path = require('path');

// .. 

app.get('/', (req, res) => {
    res.render('index', {root: path.join(__dirname, '../client')});
  });
/views/layout.pug

doctype html
html(ng-app='myViewer')
  head
    meta(charset='utf-8')
    link(href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css', rel='stylesheet')
  body(ng-controller='mainController')
    block content
    block scripts
      script(src='http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js')
      script(src='../client/controller.js')
      script(src='../client/service.js')
      script(src='../client/core.js')
extends layout

block content
  .container(ng-controller='mainController')
    .row
      table.table-bordered
        thead
          tr
            th Id
            th Caller
            th Message
            th Date
        tbody(ng-repeat='m in messages')
          tr
            td {{m.id}}
            td {{m.caller}}
            td {{m.text}}
            td {{m.date}}
script(src='./controller.js')
script(src='./service.js')
script(src='./core.js')
/views/index.pug

doctype html
html(ng-app='myViewer')
  head
    meta(charset='utf-8')
    link(href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css', rel='stylesheet')
  body(ng-controller='mainController')
    block content
    block scripts
      script(src='http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js')
      script(src='../client/controller.js')
      script(src='../client/service.js')
      script(src='../client/core.js')
extends layout

block content
  .container(ng-controller='mainController')
    .row
      table.table-bordered
        thead
          tr
            th Id
            th Caller
            th Message
            th Date
        tbody(ng-repeat='m in messages')
          tr
            td {{m.id}}
            td {{m.caller}}
            td {{m.text}}
            td {{m.date}}
script(src='./controller.js')
script(src='./service.js')
script(src='./core.js')
谢谢。 我刚换了衣服

/app/routes.js

var express = require('express');
var app = express();
var port = process.env.PORT || 3000;
var bodyParser = require('body-parser');


app.use(express.static(__dirname + '/client'));
app.use(bodyParser.json());
require('./app/routes.js')(app);

app.listen(port, () => {
  console.log('Server listening on port 3000...');
});
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./db/mes.db');
var _ = require('underscore');


module.exports = function (app) {
  app.get('/messages', (req, res, next) => {
    try {
      var messages = [];

      // Some db stuff

      res.json(messages);
    } catch (err) {
      next(err);
    }
  });

  app.set('views', './views');
  app.set('view engine', 'pug');

  app.get('*', (req, res) => {
    res.render('index');
  });
};
angular.module('myViewerController', [])
  .controller('mainController', ['$scope','$http','Messages', function($scope, $http, Messages) {
    $scope.formData = {};
    $scope.loading = true;

    Messages.get()
      .success(function(data) {
        $scope.messages = data;
        $scope.loading = false;
      })
      .error(data => {
      console.log('Error: ' + data);
    });
  }]);
  angular.module('myViewer', ['myViewerController', 'myViewerService']);
angular.module('myViewerService', [])
  .factory('Messages', ['$http', function ($http) {
    return {
      get: function () {
        return $http.get('/messages');
      }
    }
  }]);
var path = require('path');

// .. 

app.get('/', (req, res) => {
    res.render('index', {root: path.join(__dirname, '../client')});
  });
而且 /views/layout.pug

doctype html
html(ng-app='myViewer')
  head
    meta(charset='utf-8')
    link(href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css', rel='stylesheet')
  body(ng-controller='mainController')
    block content
    block scripts
      script(src='http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js')
      script(src='../client/controller.js')
      script(src='../client/service.js')
      script(src='../client/core.js')
extends layout

block content
  .container(ng-controller='mainController')
    .row
      table.table-bordered
        thead
          tr
            th Id
            th Caller
            th Message
            th Date
        tbody(ng-repeat='m in messages')
          tr
            td {{m.id}}
            td {{m.caller}}
            td {{m.text}}
            td {{m.date}}
script(src='./controller.js')
script(src='./service.js')
script(src='./core.js')

如果您查看客户端(浏览器)接收到的js,您可能会注意到它包含HTML而不是javascript。这与您设置服务器的方式有关。下面是一个用于配置节点(不带视图引擎)的代码段。至少这会为你指明正确的方向@ValSaven和pug渲染并发送该循环的html,还是只发送ng repeat,它将在客户端创建重复实例?