首页 > 解决方案 > 如何修复:错误:如果 .NET 源代码作为 JavaScript 函数提供,函数体必须是 /* ... */ 注释

问题描述

我正在尝试从此处的文档中运行基本的 hello world 示例(这是页面上的第一个示例): https ://github.com/agracio/edge-js

我有一个正在运行的打字稿文件(请参阅下面的代码)。我在 Windows 10 64 位的节点版本 9.9.0 上。我只进行了以下安装: npm install edge npm install edge.js npm install @types/node --save-dev

我已将安装到与打字稿文件相同的目录。

我能够在命令行中运行 ts-node app.ts 并将它的 console.log("hi") 成功地放在该目录中。

但是,当我将代码更改为下面的示例时,它给了我错误 throw new Error('If .NET source is provided as JavaScript function, function body must be a /* ... */ comment.');

我最初尝试使用 edge.js 执行此操作,但我不断收到我需要预编译的错误。在我的一生中,执行 build.bat 版本 10.5.3 时,我无法找到我的 python 可执行文件。(尽管包含一个值为 c:\Python\Python37\python.exe 的环境变量 PYTHON)我想尝试使用 edge-js,因为它已经预编译了。我将节点降级到 9.9(我卸载了节点 10.15.3,然后从网站上安装了 9.9.0 msi),因为我认为 edge-js 只支持版本 9。好吧,我正在尝试使用版本 9 运行 edge-js,我我仍然收到错误,尽管这是一个不同的错误。

这是我试图运行的代码:

var edge = require('edge-js');
var helloWorld = edge.func(function () {/*
async (input) => { 
    return ".NET Welcomes " + input.ToString(); 
}
*/});

helloWorld('JavaScript', function (error, result) {
    if (error) throw error;
    console.log(result);
});

标签: node.jstypescriptedge.js

解决方案


我不敢相信这行得通。这是一个语法错误。注释和函数结尾之间的空白量问题。这是正确的语法:

var edge = require('edge-js');

var helloWorld = edge.func(function () {
    /*async (input) => { 
        return ".NET Welcomes " + input.ToString(); 
    }*/
});
helloWorld('JavaScript', function (error, result) {
    if (error) throw error;
    console.log(result);
});

推荐阅读