相关文章推荐
坏坏的凳子  ·  【python】基于 ...·  1 年前    · 
爱跑步的口罩  ·  python - Interpreting ...·  1 年前    · 

为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。

创建 hello.js 文件

exports.world = function () {
  console.log('Hello World');

创建 your.js 文件

一个对象封装到模块中

function Your() {
  var name;
  this.setName = function (thyName) {
    name = thyName;
  this.sayHello = function () {
    console.log('Hello ' + name);
module.exports = Your;

这样就可以直接获得这个对象了.

创建模块main.js

var hello = require('./hello');
var Your = require('./your');
hello.world();
let yours = new Your();
yours.setName("马玉欧辰");
yours.sayHello();

代码 require(’./hello’) 引入了当前目录下的 hello.js 文件(./ 为当前目录,node.js 默认后缀为 js)。
exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。

为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。创建 hello.js 文件exports.world = function () { console.log('Hello World');}创建 your.js 文件一个对象封装到模块中function Your() { var name; this.setName = function...
Node.js是一个完整的JavaScript开发环境,并且是基于Google的ChromeV8引擎进行代码解释的。它在设计之初就已经定位用来解决传统Web开发语言所遇到的诸多问题,所以Node.js具有其他开发语言不具备的优点,包括事件驱动、异步编程等。 Node.js标准库。这部分是由JavaScript编写的,即我们使用过程中能直接调用的API。在源码中的lib目录下可以看到。 No...
nodejs/elctron中,可以通过node-ffi,通过Foreign Function Interface调用动态链接库,俗称调DLL,实现调用C/C++代码,从而实现许多node不好实现的功能,或复用诸多已实现的函数功能。 node-ffi是一个用于使用纯JavaScript加载和调用动态库的Node.js插件。它可以用来在不编写任何C ++代码的情况下创建与本地DLL库的绑定。同时它负责处理跨JavaScript和C的类型转换。 与Node.js Addons相比,此方法有如下优点: 区别:module.exports可以直接复制,例如module.exports=1,而exports不能直接赋值 module.exports = 1//right exports = 1//err 2.exports与mod
nodejs中的开发模式 -- 模块化开发 因为开发的项目一般比较大,不会将所有的代码写都在同一个文件中。这样只能执行一个文件 nodejs这样就无法分工合作 为了解决这问题,可以使用模块化开发技术 模块化开发:在一个文件中可以引入另一个文件
0x01 概述 使用electron开进行桌面程序的开发,似乎成了WEB前端开发人员转桌面程序开发的首选。近期有一些使用在electron中使用加密锁的需求,学习了一下在Node.js中通过ffi-napi模块调用动态链接库,把几款加密锁产品的动态库使用javascript封装了一下,实现了electron中使用加密锁功能。 开发过程中遇到了一些问题,踩了一些坑,这里总结记录一下。这里使用接口函数参数类型比较复杂的ROCKEY-ARM的动态链接库来进行开发。 NOTE: javascript封装的ROCK
import * as Excel from 'exceljs'; ; // 如果是js则为 var Excel = require('exceljs'); import * as Stream from 'stream'; import { CellData } from '../m...
要在 Node.js 中编写 C 模块,需要使用 Node.js 提供的 C++ API。下面是一个简单的示例,展示了如何编写一个 C++ 模块并将其导出到 Node.js 中: 首先,创建一个名为 `example.cpp` 的文件,其中包含以下代码: ```cpp #include <node.h> using namespace v8; // 定义一个函数,接受两个参数并返回它们的和 void Add(const FunctionCallbackInfo<Value>& args) { Isolate* isolate = args.GetIsolate(); if (args.Length() < 2) { isolate->ThrowException( Exception::TypeError(String::NewFromUtf8(isolate, "参数数量不正确"))); return; if (!args[0]->IsNumber() || !args[1]->IsNumber()) { isolate->ThrowException( Exception::TypeError(String::NewFromUtf8(isolate, "参数必须是数字"))); return; double value = args[0].As<Number>()->Value() + args[1].As<Number>()->Value(); Local<Number> num = Number::New(isolate, value); args.GetReturnValue().Set(num); // 导出 Add 函数 void Init(Local<Object> exports) { NODE_SET_METHOD(exports, "add", Add); // 声明初始化函数 NODE_MODULE(NODE_GYP_MODULE_NAME, Init) 这个文件定义了一个名为 `Add` 的函数,该函数接受两个参数,并返回它们的和。该文件还定义了一个名为 `Init` 的初始化函数,该函数将 `Add` 导出到 Node.js 中。最后,该文件使用 `NODE_MODULE` 宏将 `Init` 与模块名关联起来。 接下来,使用 `node-gyp` 工具将 C++ 模块编译为 Node.js 可以加载的二进制文件。创建一个名为 `binding.gyp` 的文件,其中包含以下内容: ```json "targets": [ "target_name": "example", "sources": [ "example.cpp" ] 该文件指定了编译目标 `example`,并将 `example.cpp` 文件作为源文件。使用以下命令将模块编译为 Node.js 可以加载的二进制文件: $ node-gyp configure build 最后,在 Node.js 中加载模块并使用它。创建一个名为 `app.js` 的文件,其中包含以下内容: ```js const addon = require('./build/Release/example.node'); console.log('1 + 2 =', addon.add(1, 2)); 该文件加载 C++ 模块,并使用 `addon.add` 调用 `Add` 函数。运行以下命令运行应用程序: $ node app.js 输出应该显示 `1 + 2 = 3`。