#node.js #angular
#node.js #angular
Вопрос:
Я экспериментирую с Angular2 и, благодаря быстрому руководству по запуску в их официальной документации, я определенно готов к работе. Однако, если я хочу использовать какие-либо API-интерфейсы на сервере или разместить их в облаке, похоже, мне нужно будет использовать Node. Я думаю, что у меня все правильно настроено в server.js
файле, но когда я запускаю его, кажется, что он не загружает все из SystemJS, и я получаю следующие ошибки:
Вот код узла:
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
var System = require('systemjs');
// loads './app.js' from the current directory
System.import('app').then(function(m) {
console.log(m);
});
// Config
app.set('port', (process.env.PORT || 3000));
app.use('/app', express.static(__dirname '/app'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.listen(app.get('port'), function() {
console.log('MEAN app listening on port ' app.get('port'));
});
app.get('*', function(req, res) {
res.sendFile(__dirname '/index.html');
});
Я не уверен, чего мне не хватает для включения в сторону узла, которая включается при запуске lite-server
npm start
, которая включена из руководства Angular2 quick start guide.
Ответ №1:
Когда вы указываете express, где искать статические файлы, вы также должны указать, где будут находиться ваши js-файлы.
Например, в одном из моих проектов у меня это так
app.use('/css', express.static(path.resolve(appPath, 'css')));
app.use('/lib/css', express.static(path.resolve(appPath '/lib', 'css')));
app.use('/lib/js', express.static(path.resolve(appPath '/lib', 'js')));
app.use('/assets', express.static(path.resolve(appPath, 'assets')));
app.use('/node_modules', express.static(path.resolve(appPath, 'node_modules')));
app.use('/app', express.static(path.resolve(appPath, 'app')));
Я считаю, что это может быть вашей проблемой или, надеюсь, направить вас на правильный путь.
Комментарии:
1. Спасибо! Я добавил
styles
иnode_modules
, как указано выше, но, похоже, все еще получаю ошибки. Нужно ли также инициализировать SystemJS с помощью express?