私はノードエクスプレスを初めて使用しており、以下の解決に役立ついくつかの助けが必要です。以下はNode Express Appのパブリックフォルダの外にある.jsファイルの使用方法?
ノードのための私のプロジェクト構造であるアプリケーション
フォルダ構造を表す:以下
は私app.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.set('view engine', 'hbs');
// 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');
});
module.exports = app;
である私はcontroller.jsファイルを持っています現在パブリックフォルダに存在する(フォルダ構造を参照)
私はこれが正常に動作するアプリケーションを実行すると、私はcontroller.jsを使用していますindex.hbsファイル(コードは、以下に示す)
<!DOCTYPE html>
<html ng-app="test">
<head>
<title>{{title}}</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.2/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-route.min.js"></script>
<script src="controller.js"></script>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body ng-app="test">
{{{body}}}
<!--
<div ng-view></div>
-->
</body>
</html>
を持っています。
私は、パブリックフォルダからcontroller.jsファイルを削除して、コントローラのフォルダにそれをダンプする必要があります(フォルダ構造の画像を参照)、私はプログラムを実行すると、私は以下のエラーを取得し、
は(http://localhost:3000/controller.js 404をGET見つからない)
私はindex.hbsファイルの中で私の<script src="controller.js"></script>
を非常に多くの方法で変更しました。私は何のエラーもなく運行することができます。
ご提案いただければ幸いです。
コントローラファイルとは何ですか?クライアント側の機能と何らかの関係がある場合は、それを公開することは重要ではありません。それ以外の場合は、問題を解決するために複数の静的変数を設定することができますが、望ましくない可能性のある他のファイルも表示される可能性があります。最後に、webpackのようなものを見て、すべてのJSを1つのバンドルにバンドルしてから使用することができます。 –
まあ、この特定のポイントでは、controller.jsは角度ngRoute依存性を使用するルーティングだけを行います。あなたが言ったように、それはパブリックフォルダに残すことです。しかし、それは私が一般に公開したくない機能のようなものだとしましょう。どのように私はそれを克服するのですか?ウェブパックを使用しますか? –
https://blog.madewithlove.be/post/webpack-your-bags/助けてください:) –