当前位置: 首页 > 知识库问答 >
问题:

我在NodeJS中有一个自签名证书。当我添加了证书密钥并且尝试运行它时,节点会给出如下所示的错误

白星渊
2023-03-14
var express = require('express')
    //Required for cluster 
    ,
    cluster = require('cluster')
    //Required for countting the cpu cores 
    ,
    numCPUs = require('os').cpus().length,
    socketio = require('socket.io'),
    routes = require('./routes'),
    user = require('./routes/user'),
    https = require('https'),
    connect = require('connect'),
    fs = require('fs'),
    app = connect(),
    sslOptions, server, port = 1111,
    path = require('path');

var app = module.exports = express.createServer();
app.use(form({
    keepExtensions: true
}));


sslOptions = {
    key: fs.readFileSync('./ssl/server.key'),
    cert: fs.readFileSync('./ssl/server.crt')
};

if (cluster.isMaster) {

    for (var i = 1; i < numCPUs; ++i)
        console.log('hi');
    cluster.fork();
    cluster.on('online', function(worker) {
        console.log("The Master is forked");
    });
    cluster.on('exit', function(worker, code, signal) {
        logger.log('worker ' + worker.process.pid + ' died');
    });
} else {
    var app = express();
    var server = require('https').createServer(app);

    // all environments
    // app.set('port', process.env.PORT || 1111);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'ejs');
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(path.join(__dirname, 'public')));

    // development only
    if ('development' == app.get('env')) {
        app.use(express.errorHandler());
    }

    app.get('/', routes.index);
    app.get('/users', user.list);

    server = https.createServer(sslOptions, app).listen(port, function() {
        console.log('Listening on https://' + server.address().address + ':' + server.address().port);
    });

我得到的错误是

Warning: express.createServer() is deprecated, express
applications no longer inherit from http.Server,
please use:

  var express = require("express");
  var app = express();


/home/lilac/revanth/app.js:25
app.use(form({ keepExtensions: true }));
        ^
ReferenceError: form is not defined
    at Object. (/home/lilac/revanth/app.js:25:9)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

共有1个答案

葛景龙
2023-03-14

您没有在任何地方定义变量form

您还应该将express.createServer()替换为express()

 类似资料:
  • 问题内容: 我遇到客户端https请求的问题。 片段可以如下所示: 我得到的是错误:证书链中的自签名证书。 使用邮递员时,我可以导入客户端证书和密钥,并且可以毫无问题地使用它。有没有可用的解决方案?我还希望对邮递员如何处理证书和工作方式有所了解。 问题答案: 根据您的问题,我想您正在使用SSL通讯的自签名证书进行开发。 如果是这种情况,请在您正在运行节点的任何地方或直接使用 这指示节点允许不信任的

  • 我尝试将带有正确应用程序ID、应用程序机密等的curl请求发送到 我需要从中获取访问令牌,但获取FALSE和print next message,否则: 我的代码是: 当我手动移动到上面的链接时,我很好地获得了访问权。为什么卷曲不起作用?请帮忙。

  • 我最近升级了Inteliij IDEA 2019.2,如果我尝试从IDE中提取Git,我会发现以下错误:无法访问'https://github.xxx.com/app-Hello-USD/DGS.git/“:SSL证书问题:证书链中的自签名证书。 有人能帮我什么选项,我必须启用。 谢谢

  • 问题内容: 当尝试使用其PHP库通过Twilio发送消息时,我正在为这个错误而苦苦挣扎: 我在Windows 7上使用了wamp。 我当然找到了所有其他有关证书错误的信息。据我所知,通常更新或添加文件即可解决该问题。但是,即使这样做,我仍然遇到相同的错误。 就像这里所做的健全性检查一样,这正是我所做的: 从此处下载了最新的证书:http : //curl.haxx.se/ca/cacert.pem

  • Pease帮帮我!,我是新来的flutter我正在导入一个项目,当我试图运行它时,它给出了异常 /simple_permissions-0.1.9/android/src/main/java/com/ethras/simplepermissions/simplepermissionsplugin.java:9:错误:找不到符号导入Android.support.v4.app.activitycom

  • 我想通过SSL连接到我的服务器。因此,我使用以下命令在服务器上生成证书: 如果我使用如下所示的TrustManager信任客户端上的所有证书,则连接可以正常工作: 但我当然不想相信所有的证书,而只相信我的证书。我尝试了以下几个命令来导入证书: 我要怎么做才能让它正常工作?有人能解释一下对一个不是很熟悉cryto领域的人所必需的步骤吗? 编辑:正如Donal Fellows所建议的那样,我尝试了自定