Node.js module.exports的目的是什么,你如何使用它?
我似乎无法找到任何关于此的信息,但它似乎是Node.js的一个相当重要的部分,因为我经常在源代码中看到它.
根据Node.js文档:
模
对当前的参考
module.特别module.exports是与exports对象相同.有关src/node.js更多信息,请参阅
但这并没有真正帮助.
究竟module.exports做了什么,一个简单的例子是什么?
我正在尝试构建我的项目以包含生产源(在src子文件夹中)和测试(在test子文件夹中).我正在使用CMake来构建它.作为一个最小的例子,我有以下文件:
的CMakeLists.txt:
cmake_minimum_required (VERSION 2.8)
project (TEST)
add_subdirectory (src)
add_subdirectory (test)
Run Code Online (Sandbox Code Playgroud)
SRC /的CMakeLists.txt:
add_executable (demo main.cpp sqr.cpp)
Run Code Online (Sandbox Code Playgroud)
SRC/sqr.h
#ifndef SQR_H
#define SQR_H
double sqr(double);
#endif // SQR_H
Run Code Online (Sandbox Code Playgroud)
SRC/sqr.cpp
#include "sqr.h"
double sqr(double x) { return x*x; }
Run Code Online (Sandbox Code Playgroud)
src/main.cpp - 使用sqr,并不重要
测试/的CMakeLists.txt:
find_package(Boost COMPONENTS system filesystem unit_test_framework REQUIRED)
include_directories (${TEST_SOURCE_DIR}/src)
ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK)
add_executable (test test.cpp ${TEST_SOURCE_DIR}/src/sqr.cpp)
target_link_libraries(test
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}
)
enable_testing()
add_test(MyTest test)
Run Code Online (Sandbox Code Playgroud)
测试/ TEST.CPP:
#define BOOST_TEST_MODULE SqrTests
#include <boost/test/unit_test.hpp>
#include "sqr.h"
BOOST_AUTO_TEST_CASE(FailTest)
{
BOOST_CHECK_EQUAL(5, sqr(2));
} …Run Code Online (Sandbox Code Playgroud) 有没有办法在c ++中"转换"对指针的引用?在下面的例子,func2已经定义了原型和我不能改变它,但func是我的API,我想为pass两个参数,或一(组和第二组,以NULL)或既不(均设置为NULL):
void func2(some1 *p1, some2 *p2);
func(some1& obj, some2& obj2)
{
func2(..);
}
Run Code Online (Sandbox Code Playgroud) c++ ×2
boost ×1
boost-test ×1
cmake ×1
javascript ×1
node.js ×1
pointers ×1
reference ×1
unit-testing ×1