将模块部署到运行node.js的远程服务器

时间:2018-12-21 23:20:42

标签: node.js server module

我正在node.js中处理我的app.js      -尝试部署服务器端脚本。     许多优秀的node.js模块都需要require('something');     我在本地使用NPM,这适用于require,因为模块在本地node_modules文件夹结构中很好地可见。但是现在我可以上传或捆绑到主机了。我无法在此托管服务器上运行npm。

const Hapi = require('hapi');
will result in
Error: Cannot find module 'hapi'
because I don't know how to copy/install/bundle/ftp files to my host.
Hapi is just an example. Most anything that has a require will need something on the host.
I used webpack to create a server side bundle.js but just sticking bundle.js under /node_modules doesn't do anything.
Most modules have a complex folder structure underneath --- I'm trying to avoid copying a ton of folders and files under /node_modules.  Ideally, I want to combine the modules into a bundle.js and have those modules visible to app.js
but I am open to other ideas.

我还没有尝试使用webpack将app.js TOGETHER与各种模块捆绑在一起。您对这种方法有好运吗?     谢谢。

I've tried to upload hapi files a folder-ful at a time, reaching a new require('something') error at every step.


'use strict';
const Hapi = require('hapi'); // <-- how can I deploy hapi on my node.js server?
// Create a server with a host and port
const server=Hapi.server({
    host:'localhost',
    port:8000
});
// Add the route
server.route({
    method:'GET',
    path:'/hello',
    handler:function(request,h) {

        return'hello world';
    }
});

// Start the server
async function start() {

    try {
        await server.start();
    }
    catch (err) {
        console.log(err);
        process.exit(1);
    }

    console.log('Server running at:', server.info.uri);
};

start();

1 个答案:

答案 0 :(得分:0)

    one approach that worked:  using webpack to bundle the back end js.
    thanks to 
    https://medium.com/code-oil/webpack-javascript-bundling-for-both-front-end-and-back- 
end-b95f1b429810

    the aha moment... run webpack to create bundle-back.js then
    tie bundle-back.js to my node server
    **You start your backend server with ‘bundle-back.js’ using:
        node bundle-back.js 

    In other words, include app.js in the bundle with the modules.